如何在javascript中使用微信基于promise的小程序API
本文通过代码示例来分析微信基于promise的小程序API的使用。有需要的朋友可以参考一下。如有不足之处,欢迎批评指正。
Promise Reason
微信Mini API采用对象参数回调模式,很容易造成回调地狱,导致代码难以阅读、判断、编辑和调试。 微信Mini API示例
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting[``'scope.userInfo'``]) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo({
success: res => {
// 可以将 res 发送给后台解码出 unionId
this``.globalData.userInfo = res.userInfo
}//欢迎加入前端全栈开发交流圈一起学习交流:864305860
})//面向1-3年前端人员
}//帮助突破技术瓶颈,提升思维能力
}
})
可以看到,有两层的时候,代码很乱
承诺一个小程序
写一个可以承诺小程序API的公共函数
function promisify (method, options = {}) {
return new Promise((resolve, reject) => {
// 将options对象赋值 然后再传给下面调用的方法中
options.success = resolve
options.fail = err => {
reject(err)
}//欢迎加入前端全栈开发交流圈一起学习交流:864305860
wx[method](options)
})//面向1-3年前端人员
}//帮助突破技术瓶颈,提升思维能力
我们的例子
额外参数通过
promisify(``'getUserInfo'``)
.then((res) => console.log(res))
.``catch``((err) => {console.error(err)})
promisify(``'navigateTo'``, { url })
对象的销毁传递 版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。