微信小程序常用功能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)
})
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=838