onLaunch与onload异步
处理的方式有很多,可以在app.js 定义,也可单独定义, 建议使用 Promise 处理
定义检测方法
hasLogin() {
return new Promise((resolve, reject) => {
const token = wx.getStorageSync('token');
if (!token) {
console.log('hasLogin....')
wx.login({
success: res => {
wx.request({
url: 'https://api.xxxx.com/v1/wxlogin/',
data: {code: res.code},
method: 'POST',
header: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
success(res) {
wx.setStorageSync('token', res.data.data.token)
resolve(res.data)
}, fail(err) {
reject(err)
}
})
}, fail: err => {
reject(err)
}
})
} else {
resolve();
}
})
},
在需要加载的首页引用
import { hasLogin } from '../../utils/auth.js';
const app = getApp();
Page({
onLoad: function (options) {
// hasLogin().then(res => {
// this.loadData()
// }).catch(err => {
// console.log(err)
// })
app.hasLogin().then(res => {
this.loadData()
}).catch(err => {
console.log(err)
})
},
)}