有两种方案可以实现,浏览器需要支持es6
方案一
1、main.js添加如下代码Vue.prototype.$onLaunched = new Promise(resolve => {
Vue.prototype.$isResolve = resolve
})
2、应用启动时,设置需要等待的逻辑
在 App.vue 的 onLaunch 中增加代码 this.$isResolve()
这个方法必须在你的业务如ajax执行完毕后再执行另外注意要用箭头函数,否则this不好使
onLaunch: function() {
console.log('App Launch');
console.log('倒计时10秒');
setTimeout(() => {
console.log('倒计时结束');
this.$isResolve()
},5000);
},
3、在页面 onLoad 中增加等待代码 await this.$onLaunched
注意onload要添加async,否则编译不过去
async onLoad(option) {
//等待倒计时
await this.$onLaunched;
console.log("等待倒计时结束后打印");
// 后续业务逻辑
},
4、在chrome运行截图如下,小程序等支持ES6环境才行
方案二
1、main.js
Vue.prototype.$visitStore = async (option)=>{2、页面
//页面入参option
//自己的业务逻辑
//如果是ajax,注意要加同步等待
await Vue.prototype.http.post('/customer/updateLastVisitStoreId',{lastVisitStoreId:storeId}).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
})
}
async onLoad(option) {
await this.$visitStore(option);//同步执行这个方法
}
网友回复
腾讯混元模型广场里都是混元模型的垂直小模型,如何api调用?
为啥所有的照片分辨率提升工具都会修改照片上的图案细节?
js如何在浏览器中将webm视频的声音分离为单独音频?
微信小程序如何播放第三方域名url的mp4视频?
ai多模态大模型能实时识别视频中的手语为文字吗?
如何远程调试别人的chrome浏览器获取调试信息?
为啥js打开新网页window.open设置窗口宽高无效?
浏览器中js的navigator.mediaDevices.getDisplayMedia屏幕录像无法录制SpeechSynthesisUtterance产生的说话声音?
js中mediaRecorder如何录制window.speechSynthesis声音音频并下载?
python如何直接获取抖音短视频的音频文件url?