vue/uniapp 如何让页面的 onLoad 在 onLaunch 之后执行[通俗易懂]

app.vue里的onLaunch中如果有异步方法(比如:登录),返回结果可能会在页面的onLoad之后,但onLoad中的方法需要登录回调的结果。为了让页面的onLoad在onLaunch之后执行,解决方案:1.main.js添加代码Vue.prototype.$onLaunched=newPromise(resolve=>{Vue.prototype.$isResolve=resolve;})2.在App.vue的onLau

大家好,又见面了,我是你们的朋友全栈君。

app.vue里的 onLaunch 中如果有异步方法(比如:登录),返回结果可能会在页面的 onLoad 之后,但 onLoad 中的方法需要登录回调的结果。

为了让页面的 onLoadonLaunch 之后执行,解决方案:

1. main.js 添加代码

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

2. 在 App.vue 的 onLaunch 中添加代码 this.$isResolve()

onLaunch: function() { 
   
	// 登录
	uni.login({ 
   
		provider: 'weixin',
		success: (loginRes) => { 
   
			this.$axios({ 
   
				url: '/xxxx/auth',
				params: { 
   
					code: loginRes.code
				}
			}).then(res => { 
   
				try { 
   
					uni.setStorageSync('token', res.data.token);
					this.$isResolve();
				} catch (e) { 
   
					console.error(e)
				}
				
			})
		}
	});
}

3. 在页面 onLoad 中添加代码 await this.$onLaunched

async onLoad() { 
   
    // 等待登录结果返回
    await this.$onLaunched;
	
    // 处理后续业务逻辑(此时已存在token值)
    console.log(uni.getStorageSync('token'));
    this.getData();
},
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129636.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 备注ocp_ORACLE专题网络

    备注ocp_ORACLE专题网络

  • Android短信验证码控件,Android中实现短信验证码自动填入

    Android短信验证码控件,Android中实现短信验证码自动填入Android中实现短信验证码自动填入由于目前的好多应用都有短信验证,短信验证码收到后,用户手动输入已经显得有麻烦,于是我写了这篇博文,希望能对大家有所帮助。实现步骤:1.写一个SmsBroadcastReceiver,在AndroidMainifirst.xml文件中注册:/***配置广播接收者:**表示:*设置此广播接收者的级别为最高*/类代码:publiccl…

  • SqlServer定时备份数据库和定时杀死数据库死锁解决

    SqlServer定时备份数据库和定时杀死数据库死锁解决

  • lseek函数的用法

    lseek函数的用法所有打开的文件都有一个当前文件偏移量(currentfileoffset),以下简称为cfo。cfo通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数。读写操作通常开始于cfo,并且使cfo增大,增量为读写的字节数。文件被打开时,cfo会被初始化为0,除非使用了O_APPEND 。   使用lseek函数可以改变文件的cfo。       #in…

  • python字符串匹配开头_对python 匹配字符串开头和结尾的方法详解

    python字符串匹配开头_对python 匹配字符串开头和结尾的方法详解1、你需要通过指定的文本模式去检查字符串的开头或者结尾,比如文件名后缀,URLScheme等等。检查字符串开头或结尾的一个简单方法是使用str.startswith()或者是str.endswith()方法。比如:>>>filename=’spam.txt’>>>filename.endswith(‘.tx…

  • JavaAPI文档

    JavaAPI文档JavaAPI文档Scanner类引用类型的一般使用步骤:1.导包import包路径.类名称;如果要使用的目标类,和当前类位于同一个包下,可以省略导报语句不写。只有java.lang包下的内容不需要导包,其他的包都需要import语句。2.创建类名称对象名=new类名称();Scannersc=newScanner(System.in);3.使用对象名…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号