欢迎光临
我的个人博客网站

微信小程序异步处理


前言

小程序中存在大量异步调用的接口,例如最常用的wx.login()wx.getUserInfo()wx.setStorage()wx.getStorage()wx.request(),虽然官方对部分接口也做出了同步版本,例如wx.setStorageSyncwx.getStorageSync(),但是在实际开发中始终要面对异步处理这个问题。

由于没有编写小程序的经验,一遇到异步问题果断想起了async/await,但在使用过程中看到程序的输出顺序就发现不对劲(用了跟没用一样)。百度一番后发现小程序默认不支持async/await,需要在开发者工具右上角点击详情–>本地设置–>增强编译来增强 ES6 转 ES5 的能力。

微信小程序异步处理

或者打插件npm install regenerator实现异步处理。

(以上两种方法我都没用,直接用了promise)

promise()

比如要实现当方法A执行完再实现方法B。

那么需要在方法A中返回一个promise,返回的promise中进行数据操作,成功的数据传入resolve,失败的结果传入reject。

接着在方法B中调用方法A,用.then 和 .catch 分别对成功和失败的结果进行处理。

例子:

// 方法A testA() {   return new Promise((resolve, reject) => {     wx.request({       url: 'xxxxxxx',       success: res => {         resolve(res)       },       fail: res => {         reject('失败啦')       }     })   }) }, //方法B testB() {   this.testA().then(res => {	// 方法A执行完后执行方法B     // 填写方法B的内容     ...     console.log(res)	// 输出内容:res   }).catch(res => {     console.log(res)	// 输出内容:'失败啦'   }) } 
赞(0) 打赏
未经允许不得转载:张拓的天空 » 微信小程序异步处理
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏