我把登陆/获取用户信息写再了app.js里,再success之后将内容赋值到globalData.xxxxx,Page的onLoad中再把globalData.xxxxx赋值到data.xxxxx发现赋值不上 差了很多资料说是onLoad,onLaunch,request异步请求的问题导致 请问如何解决。
app.js
app({
globalData: {
xxxxx: null
},
onLaunch: function () {
var that = this;
wx.login({
success: function (res) {
var code = res.code;
if (code) {
wx.getUserInfo({
success: function (res) {
wx.request({
.....
},
success: function (data) {
that.globalData.xxxxx = data.data.xxxxx
},
fail: function () {
console.log('系统错误')
}
})
},
fail: function () {
console.log('获取用户信息失败,请重新授权')
}
})
} else {
console.log('获取用户登陆状态失败' + res.errMsg)
}
},
fail: function () {
console.log('登陆失败')
}
})
}
})
index.js
var app = getApp();
Page({
data: {
xxxxx:null
},
onLoad: function (options) {
this.setData({
xxxxx: app.globalData.xxxxx
});
}
})
使用Promise进行对APP.js内的进行login的方法进行一次封装后,在index.js内调用app内封装的那个方法后拿到所需值然后对全局的那个globalData进行赋值,如果还有不明白的 明天到公司 我给你上代码。