在page頁面中需要token,但是登陸往往都放在app.js中,兩者又是異步,常常導(dǎo)致bug。
所以應(yīng)該在page頁面中實現(xiàn)這部分代碼:
app.js實現(xiàn)
//在app.js中定義一個方法 監(jiān)聽globalData的屬性isLog變化
isLoginWatch:function(callBack){
var obj = this.globalData;
Object.defineProperty(obj,"token", {
configurable: true,
enumerable: true,
set: function (value) {
// value就是被新賦予的值,通過回調(diào)函數(shù),把這值回調(diào)出去
callBack(value);
this._token = value;
},
get:function(){
console.log("獲取數(shù)據(jù)", this.token);
return this._token;
}
})
},
page中實現(xiàn): sdk.getToken是判斷方法token是否存在,如果存在直接使用,如果不存在,那么就監(jiān)聽app.js中的方法。 this.watchLogin是要在app.js獲取完成token后,所需要執(zhí)行的回調(diào)。
if(sdk.getToken()){
this.init();
}else{
getApp().isLoginWatch(this.watchLogin);
}