小程序回调函数转Promise

本文介绍了在微信小程序开发中,如何将常见的回调函数如wx.login、wx.getSetting等转换为Promise形式,以解决回调地狱问题。作者分享了一个简单的Promise.js封装示例,包括wx.login和wx.request的封装,使得调用更加简洁。
摘要由CSDN通过智能技术生成

最近在公司中负责微信小程序的工作,发现小程序中经常会用到获取用户信息等功能。而wx.login、wx.getSetting等小程序的API都是回调函数的形式。而获取用户信息需要wx.login(获取code)、通过code到后台请求userId、wx.getSetting获取用户设置和wx.getUserInfo四个步骤。造成的回调嵌套太过于繁琐,就想着能不能把回调形式封装一下,以Promise的方式返回。其中wx.request由于涉及到传参,与其它API在封装时稍有差异。

这里借鉴了思否上一篇文章的写法传送门

promise.js

function promisify(api) {
  return (options, params) => {
    return new Promise((resolve, reject) => {
      api(Object.assign({}, options, { 
        success: res => resolve(res), 
        fail: res => reject(res) 
      }, params))
    })
  }
}

module.exports.promisify = promisify

引入promise.js,以ws.login为例

const pro = require('./promise.js').promisify
const login = pro(ws.login)

login().then(res => {
	console.log(res.data)
}).catch(res => {
	console.log(res.errMsg)
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值