采用Promise.all()方法处理登录和授权
login.wxml:
<button class='apply-btn' bindtap="toLogin" type='primary'>
授权登录
</button>
utils/logins.js:
// 授权
function wxGetUserProfile() {
return new Promise((resolve, reject) => {
wx.getUserProfile({
desc: '用户登录',
success: (res) => {
resolve(res)
},
// 失败回调
fail: (err) => {
reject(err)
}
})
})
}
// 登录
function wxLogin() {
return new Promise((resolve, reject) => {
wx.login({
success (res) {
resolve(res)
},
fail (err) {
reject(err)
}
})
})
}
export {
wxGetUserProfile,
wxLogin
}
login.js:
import {
wxGetUserProfile,
wxLogin
} from '../../utils/logins.js'
// 授权登录
async toLogin() {
try {
let res = await Promise.all([wxGetUserProfile(), wxLogin()]);
if (res[0].errMsg == "getUserProfile:ok" && res[1].errMsg == "login:ok") {
//写相关逻辑
}
}catch(err){
console.log(err)
}
}