微信小程序封装定位问题(封装异步并可能多次请求)

clipboard.png

当首次成功定位或者定位失败点击取消按钮是没有问题,能接收到then里面的回调或者是取消定位catch里面的函数,但定位失败点击重新定位进行对getLocation进行重新调用,是会重新new promise的,但这时的resolve或者reject就不能成功了,报错提示

clipboard.png

这个意思是没有catch做首次请求的错误处理吗?
这时候我就把他修改为

clipboard.png

让他先处理完错误再重新调用,这时不执行catch里面的方法。请问该怎么处理。让第二次执行resolve或者reject

跟这种虽然不是异步,但实现原理跟性质好像一样,这样又是可以返回第二次的resolve或者reject

clipboard.png

clipboard.png

阅读 2.6k
1 个回答

看代码,感觉是因为你的第一个promise没有进行决议,然后通过调用getLocation()又开始启用了另一个promise,所以会报错吧。
我理解的你要实现的就是在promise中要递归的调用自身。你可以搜搜promise递归调用相关问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题