uni.login异步请求
在开发过程中会遇到uni.login时需要执行一些网络请求,然而因为uni.login并不会等待网络请求结束后(哪怕网络请求使用了await)再返回。
可以通过new promise来实现异步化
async function login() {
await new Promise((resolve, reject) => {
// uni.login非异步,所以用Promise包装
uni.login({
async success(res) {
let r = await uni.$u.http.get('api/user/login?code=' + res.code)
if (r.succeeded) {
iniData(r.data)
resolve(res.code)
} else {
reject(res)
}
},
fail(res) {
reject(res)
}
})
})
}