在微信小程序中这两个方法并没有执行先后的顺序,因为他们都是异步执行的。如何在页面中使用Launch中的数据呢,上代码
- app.js
onLaunch: function() {
// 请求tabbar数据
let that = this
let data = {
parameter1:参数1
parameter2:参数2
}
that.ajax('/home', data, res => {
if (res.data.code == 200) {
//存在globalData里
that.globalData.list = res
// 由于这里是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (that.testDataCallback) {
that.testDataCallback(res);
}
}
}, err => {
console.log(err)
})
},
- index.js
let that = this;
// console.log(app.globalData.list)
if (app.globalData.list && app.globalData.list != '') {
this.setData({
list: app.globalData.list
})
} else {
// 声明回调函数获取app.js onLaunch中接口调用成功后设置的globalData数据
app.testDataCallback = list => {
if (list != '') {
this.setData({
list : app.globalData.list
})
}
}
}