微信小程序常用功能Promise封装

function wxPromisify(fn) {
    return function (obj = {}) {
        return new Promise((resolve, reject) => {
            obj.success = res => resolve(res)
            obj.fail = err => reject(err)
            fn(obj)
        })
    }
}

//微信用户登录,获取code
function wxLogin() {
    return wxPromisify(wx.login)
}

/**
 * 获取微信用户信息
 * 必须在登录之后调用
 */
function wxGetUserInfo() {
    return wxPromisify(wx.getUserInfo)
}

/**
 * 获取系统信息
 */
function wxGetSystemInfo() {
    return wxPromisify(wx.getSystemInfo)
}

/**
 * 保留当前页面,跳转到应用内的某个页面
 * url:'../index/index'
 * params:{key:value1}
 */
function wxNavigateTo(url, params) {
    var wxNavigateTo = wxPromisify(wx.navigateTo)
    const serializedParams = this.paramSerializer(params)
    if (serializedParams.length > 0) {
        url += ((url.indexOf('?') == -1) ? '?' : '&') + serializedParams
    }
    return wxNavigateTo({
        url: url
    })
}

module.exports = {
    wxPromisify: wxPromisify,
    wxLogin: wxLogin,
    wxGetUserInfo: wxGetUserInfo,
    wxGetSystemInfo: wxGetSystemInfo
}

例如授权登录,获取用户信息,就可以这样使用

const Api = require('./wxApi')

let wxLogin = Api.wxLogin()
wxLogin().then(res => {
    let wxGetUserInfo = Api.wxGetUserInfo()
    return wxGetSystemInfo()
}).then(res => {
    console.log(res.userInfo)
})
如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注