问题概述
小程序request请求是异步的特性,app.js onLaunch()
中的请求与index.js onLoad()
中的请求是同时进行的,导致onLoad()
中如有基于onLaunch()
返回的数据的请求,会有报错,这样会使onLoad()
中request请求的数据“第一次”无法正常获取。
我的小程序中所有的requset请求都需要在header中带着用户唯一的token进行发起,而token是在app.js onLaunch()
中的wx.login()返回中获取到的(由code到后台换取),之后通过wx.setStorageSync('token', res.data)
存到小程序中。 问题是index.js执行需要前面的返回结果时 前面的请求结果还没返回。
目前是每个页面加回调,要经过n次判断。这样对于开发真的很不友好。
希望官方可以 让开发者控制 wx.request 同步或异步
在app.js的globalData里定义一个用来接获取通过promise的方式openid的变量,在index页面通过全局变量的resolve去请求其他接口,这种方式可以解决app.js获取数据不及时,导致首页获取数据出问题