javascript - 微信小程序封裝定位問(wèn)題(封裝異步并可能多次請(qǐng)求)
問(wèn)題描述
當(dāng)首次成功定位或者定位失敗點(diǎn)擊取消按鈕是沒(méi)有問(wèn)題,能接收到then里面的回調(diào)或者是取消定位catch里面的函數(shù),但定位失敗點(diǎn)擊重新定位進(jìn)行對(duì)getLocation進(jìn)行重新調(diào)用,是會(huì)重新new promise的,但這時(shí)的resolve或者reject就不能成功了,報(bào)錯(cuò)提示
這個(gè)意思是沒(méi)有catch做首次請(qǐng)求的錯(cuò)誤處理嗎?這時(shí)候我就把他修改為
讓他先處理完錯(cuò)誤再重新調(diào)用,這時(shí)不執(zhí)行catch里面的方法。請(qǐng)問(wèn)該怎么處理。讓第二次執(zhí)行resolve或者reject
跟這種雖然不是異步,但實(shí)現(xiàn)原理跟性質(zhì)好像一樣,這樣又是可以返回第二次的resolve或者reject
問(wèn)題解答
回答1:看代碼,感覺(jué)是因?yàn)槟愕牡谝粋€(gè)promise沒(méi)有進(jìn)行決議,然后通過(guò)調(diào)用getLocation()又開(kāi)始啟用了另一個(gè)promise,所以會(huì)報(bào)錯(cuò)吧。我理解的你要實(shí)現(xiàn)的就是在promise中要遞歸的調(diào)用自身。你可以搜搜promise遞歸調(diào)用相關(guān)問(wèn)題。
相關(guān)文章:
1. php - 第三方支付平臺(tái)在很短時(shí)間內(nèi)多次異步通知,訂單多次確認(rèn)收款2. html5 - h5寫(xiě)的app用的webview,用手機(jī)瀏覽器打開(kāi)不顯示?3. css3 - css before 中文亂碼?4. Mysql && Redis 并發(fā)問(wèn)題5. javascript - node服務(wù)端渲染的困惑6. javascript - 百度echarts series數(shù)據(jù)更新問(wèn)題7. javascript - webpack --hot 熱重載無(wú)效的問(wèn)題8. mysql新建字段時(shí) timestamp NOT NULL DEFAULT ’0000-00-00 00:00:00’ 報(bào)錯(cuò)9. mysql scripts提示 /usr/bin/perl: bad interpreter10. mysql - 一個(gè)表和多個(gè)表是多對(duì)多的關(guān)系,該怎么設(shè)計(jì)
