问题描述:
项目启动调用接口根据当前的域名获取到一个sys_id的参数,后续onload里面所有接口的调用都需要携带参数sys_id。但是,onLaunch 中的请求是异步的,也就是说在执行 onLaunch 后页面 onLoad 就开始执行了,而不会等待 onLaunch 异步返回数据后再执行,这就导致了页面无法拿到 onLaunch 中异步获取的数据。
解决方案:
步骤1
在 main.js 中增加如下代码:
Vue.prototype.$onLaunched = new Promise(resolve => {
Vue.prototype.$isResolve = resolve
})
步骤2
在 App.vue 的 onLaunch 中增加代码 this.$isResolve(),具体如下:
this.$isResolve()
步骤3
在页面 onLoad 中增加代码 await this.$onLaunched,具体如下:
await this.$onLaunched