前言
虽然app.js先于index.js。但是修改app.js中的全局变量是异步请求,如果你想在index.js里获取app.js修改后的值,那么需要使用promise
来实现异步。
app.js
//app.js App({ globalData: { userInfo: null }, // 检测授权 getauthor: function () { return new Promise((resolve, reject) => { wx.getSetting({ success: (res) => { if (res.authSetting["scope.userInfo"]) { console.log("已授权"); wx.getUserInfo({ lang: 'zh_CN', success:(res)=> { //箭头函数为了处理this的指向问题 this.globalData.userInfo = res.userInfo; resolve(this.globalData.userInfo); // 这里是关键 } }) } else { reject(this.globalData.userInfo) wx.redirectTo({ url: '/pages/author/author' }) console.log("未授权"); wx.removeStorage({ key: 'unionid' }) } } }) }) } })
index.js
// 获取用户信息 app.getauthor().then(res => { console.log(res); })