在page页面中需要token,但是登陆往往都放在app.js中,两者又是异步,常常导致bug。
所以应该在page页面中实现这部分代码:
app.js实现
//在app.js中定义一个方法 监听globalData的属性isLog变化
isLoginWatch:function(callBack){
var obj = this.globalData;
Object.defineProperty(obj,"token", {
configurable: true,
enumerable: true,
set: function (value) {
// value就是被新赋予的值,通过回调函数,把这值回调出去
callBack(value);
this._token = value;
},
get:function(){
console.log("获取数据", this.token);
return this._token;
}
})
},
page中实现: sdk.getToken是判断方法token是否存在,如果存在直接使用,如果不存在,那么就监听app.js中的方法。 this.watchLogin是要在app.js获取完成token后,所需要执行的回调。
if(sdk.getToken()){
this.init();
}else{
getApp().isLoginWatch(this.watchLogin);
}
网友评论