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

该文章由 leevare 发布于 ,归类于 Javascript
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)
})

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

相关文章:

说点什么

avatar
300
  Subscribe  
提醒