uni-app onLaunch和onLoad异步的问题

本文讨论了在使用uni-app开发H5页面时遇到的onLaunch和onLoad生命周期异步问题,作者分享了如何通过在main.js中创建Promise并在onLaunch中调用接口并确保onLoad同步执行来解决此问题,为开发者提供了解决方案。
摘要由CSDN通过智能技术生成

最近小编开发用uni-app开发H5页面的时候遇到一个问题,不知道其他小伙伴有没有遇到onLaunch和onload异步问题。欢迎大家留言一起探讨。

按着正常的逻辑来说启动H5页面先触发onLaunch,随后触发onLoad,其实不是,在触发onLaunch的同时也在触发要进入页面的onLoad,所以导致在onLoad里面拿不到onLaunch里的数据。

解决方法,小编也查了资料,提供给大家参考

//第一步:在uni-app项目,main.js中


Vue.prototype.$onLaunched = new Promise(resolve => {
    Vue.prototype.$isResolve = resolve
})




//第二步:在app.vue   onLaunch中调用接口


onLaunch(){
    this.$u.post('/loginAdmin',{//这是调用的接口
		workCard: params['userid']
	}).then((res)=>{
	             
		this.$isResolve()//调用下
	}).catch((res)=>{
		//出息信息错误
		this.$Router.replace({name:"noautority"}) //未授权页面
	})
}


//第三步 :在要进入页面的onLoad生命周期
//这里要写成同步的需要加async 

async onLoad(){

    await this.$onLaunched
     //以下在进行业务逻辑操作

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值