微信小程序 mysql await mysql_在微信小程序中使用 async/await

本文介绍了如何在微信小程序中启用并利用async/await处理异步调用,通过更新微信开发者工具至指定版本,可以支持async/await。接着,文章展示了如何将wx系列的异步方法封装为Promise风格,以便更好地配合async/await使用。最后,讨论了在使用await时遇到的错误处理问题,提出了解决方案。
摘要由CSDN通过智能技术生成

a502d89274b438ddb959d75d1a5e9708.gif

微信小程序中有大量接口是异步调用,比如 wx.login()、wx.request()、wx.getUserInfo() 等,都是使用一个对象作为参数,并定义了 success()、fail() 和 complete() 作为异步调用不同情况下的回调。

但是,以回调的方式来写程序,真的很伤,如果有一个过程需要依次干这些事情:

wx.getStorage() 获取缓存数据,检查登录状态

wx.getSetting() 获取配置信息,

wx.login() 使用配置信息进行登录

wx.getUserInfo() 登录后获取用户信息

wx.request() 向业务服务器发起数据请求

……

那么,代码大概会长这样

wx.getStorage({

fail: () => {

wx.getSetting({

success: settings => {

wx.login({

success: ({ code }) => {

wx.getUesrInfo({

code,

success: (userInfo) => {

wx.request({

success: () => {

// do something

}

});

}

});

}

});

}

});

}

});

显然,async/await 可以同样逻辑的代码看起来舒服得多。不过默认情况下,“微信开发者工具”并不支持 async/await。如何启用?

1. 用上 async/await

如果有心,在微信小程序官方文档中搜索 async 可以找到“工具⇒开发辅助⇒代码编译”页面中提到了对 async/await 的支持情况,是在“增加编译”小节的一个表格中,摘录一段:

在 1.02.1904282 以及之后版本的开发工具中,增加了增强编译的选项来增强 ES6 转 ES5 的能力,启用后会使用新的编译逻辑以及提供额外的选项供开发者使用。

特性原有逻辑增强编译

Async/Await

不支持

支持

支持 async/await 语法,按需注入 regeneratorRuntime,目录位置与辅助函数一致

总之呢,就是,只要把“微信开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值