解决微信小程序app.js中异步请求尚未执行完成,就执行Page页面请求的问题

解决微信小程序app.js中异步请求尚未执行完成,就执行Page页面请求的问题,第1张

问题描述:在app.js中执行login请求获取token,home.js中的请求会出现不带token的情况。

原瞎没因:app.js中的login请求是异步 *** 作,所以会出现执行枣神碧home.js中请求的时候,login请求还未执行完成,因此获取不到token。

解决方法:在app.js中使用Promise;在home.js判断Promise的状态,已完成时再去执行页凳举面的请求。

获取 openid 我是直接使用小程序云函数中的login函数,在开发中,我是直接写在主页面的js中,很多函数都需要openid的值,有时候能获取到,有时候又不行,调试之后发现是获取getopenid的函数是异步,不能通过 onLoad() 方法直接获取,当onload函数启动后,下面直接顺序执行,openid还没获取到,下面的函数已经在执行了,这指明就是异步问题了。

我们雹逗烂要在 APP.js 中调用获源漏取 openid 云函数

微信小程序启动进行自动登录问题,偶尔提示code过期,是由于onLaunch启动进行自动登录时,code提交到服务端,还未返回结果,页面page上执行onload请求部分需要登录的接口--由于此时还未返回登录信息,--认为当前未登录--跳转到登录页,登录界面服务端返回自动登录用户信息,此时登录启棚手界面用户点击登和衡录按钮,提示code已被使用,无法在进行登录 *** 作,原理上就是onLaunch未执行完就执行了page--onload导致出现问题,解决办法,控制执行完onLaunch再去执行page--onload,有以下3中方法:

解决办法

定义回调函数, onload里获取不到东西就一直获取,不执行下一步 *** 作,直到获取到app.js的数据才继续执行。若login返回为空,则给app.js注册一个loginSuccessCallback回调,这个回调方法的执行时机,就是app.js中的异步请求完毕

把 app.js 中的 onLaunch 中方法拿到 index.js 文件中悄嫌,按照自己的逻辑写

使用promise

1.

2.

3.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12527023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存