gpt4 book ai didi

javascript - ngStorage 是否异步执行操作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:45:38 25 4
gpt4 key购买 nike

我正在使用 angular.js 和 ngstore。我正在使用基于 token 的身份验证和 node.js REST 服务,从 Angular 应用程序我将我的凭据发送到休息服务器并收到 token ,然后我将此 token 存储在 $localStorage 中以在所有 Angular 应用程序中使用($本地存储.token)。但事实证明,有时 $localStorage.token 是未定义的,即使我将 token 分配给它,所以当我调用另一个在 header 中发送 token 的休息端点时,我实际上发送了一个未定义的值。另外,当我尝试注销时,我会这样做

delete $localStorage.token

但是当我检查用户是否已注销时,实际上 token 仍然存在。奇怪的是,如果我在删除 token 或分配 token 后立即设置断点并等待一段时间,一切正常,这让我认为这些操作可能是异步的?

这是一个常见问题吗?我该如何解决这个问题?

如有任何帮助,我们将不胜感激。

编辑:实际上我发现问题出在使用 window.location 时,如果我使用 $location.path 它可以正常工作,但由于某些原因我需要使用 window.location,据我所知它应该可以工作

最佳答案

我今天遇到了同样的问题,使用以下提交对我有用。

https://github.com/raynode/ngStorage

这里有一个关于这个问题的有益讨论:

https://github.com/gsklee/ngStorage/issues/39

在此版本的 ngStorage 中,作者深思熟虑地提供了一种在继续执行 $window.location.reload() 之前“保存”的方法;

登录期间:

$localStorage.value = 100;
$localStorage.$save();

(然后) $window.location.reload();

注销期间:

delete $localStorage.value;
$localStorage.$save();
$window.location.reload();

这对我有用,可确保在页面重新加载之前删除 $localStorage 变量。

关于javascript - ngStorage 是否异步执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28660922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com