一,先说一下遇到的问题:
小程序卡片进入小程序后,为了携带app.js中一些参数去做请求动作,但是由于异步原因,造成发起请求时候,参数信息还未获取到但请求已经发出去。
我想要的是app.js全局参数拿到之后,再携带参数去进行接口请求;
二, 解决方案:
在app.js的中定义一个回调函数:
// app.js
globalData: {
params:null
}
request.xxx({}, (res)=>{
this.globalData.param1= res.data;
});
//重点callback
if(this.XXXCallback){
this.XXXCallback(param1)
}
//index.js(你有用到全局参数的页面)
const App = getApp();
onLoad:function(){
if(App.globalData.params){
//有参数的情况下,处理业务逻辑
}
else{
App.XXXCallback = params=>{
//处理业务逻辑
}
}
以上方法可完美解决异步照成的全局参数onload后返回的问题 。