關(guān)于微信小程序在app.js修改后的全局變量值在其他頁面異步獲取的問題
前言
雖然app.js先于index.js。但是修改app.js中的全局變量是異步請求,如果你想在index.js里獲取app.js修改后的值,那么需要使用promise來實現(xiàn)異步。
//app.js
App({
globalData: {
userInfo: null
},
// 檢測授權(quán)
getauthor: function () {
return new Promise((resolve, reject) => {
wx.getSetting({
success: (res) => {
if (res.authSetting["scope.userInfo"]) {
console.log("已授權(quán)");
wx.getUserInfo({
lang: 'zh_CN',
success:(res)=> { //箭頭函數(shù)為了處理this的指向問題
this.globalData.userInfo = res.userInfo;
resolve(this.globalData.userInfo); // 這里是關(guān)鍵
}
})
}
else {
reject(this.globalData.userInfo)
wx.redirectTo({
url: '/pages/author/author'
})
console.log("未授權(quán)");
wx.removeStorage({
key: 'unionid'
})
}
}
})
})
}
})
index.js
// 獲取用戶信息
app.getauthor().then(res => {
console.log(res);
})
因為要首先加載index頁面,所以需要使用異步請求,在其他頁面的話,可以直接使用app.globalData.userInfo.userInfo,
作者:Vam的金豆之路
主要領(lǐng)域:前端開發(fā)
我的微信:maomin9761
微信公眾號:前端歷劫之路