微信小程序 Promise最简单的用法,解决异步问题

用小程序做东西时遇到一个异步问题,比如上传图片需要读取返回的真实地址时,因为小程序异步的原因,程序会继续往下执行

往往是图片还没传完,下一步的函数都运行完了,这个时候根本取不到真实地址。

查看了很多文章,大部分都说用Promise来阻塞异步解决, 但是看了下Promise的用法文章,可能我才疏学浅,没太搞懂。

后来我参考了一个高手写的代码,终于知道如何用了,具体原理我就不想深究了,使用套路写在下面:

 

 我觉得不要做什么Promise API封装  不需要JS页面 import 这个封装函数,只会让人越搞越晕

 

 let  PromiseArr = []

 PromiseArr.push(new Promise((reslove,reject)=>{

 //这里写你想要阻塞的函数 ,比如wx.request 啊 wx.cloud.uploadfile啊 等等

 success:res=>{

  //这里写逻辑,比如获取图片云存储的真实地址  this.data.imagePath =  res.fileId 等等

  reslove();

  }

 })) 

 //关键的执行步骤

Promise.all(PromiseArr).then(res=>{

//这里就可以开始写下一步执行的函数了 ,甚至也可以做Promise的嵌套,再写一个在里面

 this.setdata({

  //把上一步获得的结果进行加工, 这样的就不会异步了。 

   images: this.data.imagePath

})

 })

 

只要按照以上套路出牌,基本上是没问题的。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值