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();
},
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 苹果录屏gif_动态录屏

    苹果录屏gif_动态录屏作为一名优秀的前端程序员,想要输出内容,总需要制作一些动图(前端动效、功能预览、代码讲解等),接下来咱们说一下,使用Mac录屏,并转成Gif格式动图的方法:工具:Mac、QQ操作步骤:1.打开QQ(没有安装QQ的话,请自行安装)使用QQ聊天对话框中的截图功能(小剪刀),选中“录屏”功能。或者使用快捷键command+shift+A2.按照提示,选择要录屏的区域进行视频录制。如下图:…

    2022年9月20日
    4
  • php 开启opcode,php 开启 opcode 测试

    php 开启opcode,php 开启 opcode 测试php 开启 opcode 测试 合理使用 实验环境系统信息 Linuxlocalho localdomain3 10 0 514 10 2 el7 x86 64 1SMPFriMar30 04 05UTC2017x86 64×86 64×86 64GNU Linux 内存 512MCPU1 核 PHP 版本 PHP7 0 21 amp ZendOPcach

    2025年7月3日
    4
  • CPLD和FPGA的区别和联系「建议收藏」

    CPLD和FPGA的区别和联系「建议收藏」CPLD和CPU接口:1、CPLD大部分是做为CPU的扩展,替CPU完成外部引脚资源的扩展、输入输出时序管理、部分软件功能实现,肯少单独用CPLD。2、初学者使用CPLD时,可以在IO连线中串联一个51欧姆的电阻,方便测量,更重要的是能保护CPLD的IO,更深一步是能改善高速信号的振铃、信号反射。提高信号完整性。参考:FPGA和CPLD对比与入门FPGA与CPLD的区别…

    2022年6月4日
    32
  • 解决:java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider

    解决:java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider控制台报错:java.lang.NoSuchMethodException:tk.mybatis.mapper.provider.base.BaseSelectProvider.<init>()浏览器访问:http://localhost:8081/category/list?pid=0解决办法:应该导入importtk.mybatis…

    2022年6月15日
    36
  • Apache配置+php配置

    Apache配置+php配置一、apache配置首先下载apache安装包,下载地址:http://httpd.apache.org/download.cgi我的是win7系统,所以下载windows的安装包,点击我圈出的地方然后点击ApacheHaus根据自己的电脑选择64位还是32的安装包,进行下载然后解压文件,我解压到E:\Apache\Apache24然后打开文件夹找到conf文件夹…

    2022年7月14日
    17
  • 启用shift后门的方法_服务器可以拿来干什么

    启用shift后门的方法_服务器可以拿来干什么提权工具如下:cmd.exeChurrasco.exenc.exe提权前提:Wscript组件成功开启如果Wscript组件被关闭,则使用以下方法开启:源代码:<objectrunat=serverid=oScriptlhnscope=pageclassid="clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8"></…

    2022年9月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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