如何解决localStorage同步异步的问题?
前端框架Angular 7+ionic4,在公众号中需要在app.compponents.ts文件中走授权接口,拿到授权后把token存在本地,然后跳转到其它页面在接口请求中把token放到请求头中,现在的问题是有时候token还没拿到就先走了其它接口了,导致数据无法请求到,我现在的做法是延迟加载500ms后再去请求接口以保证token已存在localstorage中,不知道是否有更好的办法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
古老的方法的话,使用Promise,但Angular的http接口和其他异步处理接口都是使用Observable,Angular7/inonic4可以使用es7的async/await,这个更方便。
如果直接使用Observable,则可以这样保证取得tocken之后,再调用navigateToPageXXX跳转到XXX页面。
如果是async/await,则定义
用全局变量 放,
然后同时存localstorage,
(上两步可以 封装一个方法)
取的时候,
从全局变量取,
没值 的时候取localstorage里的值。
(也可以封装一个方法)
然后再写一个清除的方法