解决微信小程序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的状态,已完成时再去执行页面的请求。

    在小程序开发时,我们请求数据,就需要使用promise或者async处理异步请求,避免掉入回调地狱。而async号称是解决回调地狱的最终方案,平时我也是比较喜欢使用的,但是作为es7的语法,小程序的开发者工具貌似不支持es7

那么要如何让开发工具支持呢?

(注:不可全局引入,否则无效)

该方法存在兼容性,若要适配某些旧的手机或者小程序时,请勿使用本方法

2.使用promise处理异步

3.使用async

微信小程序里面的本地缓存

wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)

localStorage :是永久存储,以用户维度隔离,同一台设备上,A 用户无法读取到 B 用户的数据。

在小程序中无 Sync 结尾的本地缓存中,都为 异步缓存

wx.setStorage(object)

参数object说明

控制台

表示储存成功

wx.getStorage(object)

示例

这个key值就是先前setStorage的命名key,证明指定获取那个缓存中的数据

wx.clearStorage(object)

清理本地数据缓存

将之前储存在Storage中的数据清空。适用于退出登录后登录信息的清除

wx.getStorageInfo(object)

异步获取当前storage的相关信息( 当前小程序里面所有的storage的储存信息

参数说明

执行结果

wx.removeStorage(OBJECT)

从本地缓存中异步移除指定 key值

获取当前data值时将报错undefined

执行结果


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

原文地址:https://54852.com/yw/7707055.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存