gpt4 book ai didi

javascript - 在 JavaScript 中将 Promise 链接在一起

转载 作者:行者123 更新时间:2023-11-28 08:00:53 24 4
gpt4 key购买 nike

我正在努力理解 JavaScript 中的 Promise。根据我的理解,我可以将它们链接在一起。然而,我觉得我缺少一些东西。目前,我有一个 AngularJS 应用程序正在使用 $localForage module 。我需要在本地存储中设置一个项目。然后,我需要从本地存储中删除一个项目。最后,我需要将用户重定向到另一个页面。为了实现这一点,我编写了以下代码:

$localForage.setItem('name', 'John Doe')
.then(function() { return $localForage.removeItem('history'); })
.then(function() {
console.log('redirecting the user...');
$location.url('/views/page-2');
console.log('should redirect');
})
;

执行此代码时,我在控制台中看到以下内容:

redirecting the user...
should redirect

但是,我从未被重定向到 /views/page-2。有趣的是,如果我将 $location.url('/views/page-2'); 放在第一个 then(...) 中,我就会被重定向。因此,我觉得对于 Promise 有一些我不理解的地方。

我是否正确链接在一起?或者,我正在尝试一些我做不到的事情吗?如果我不能这样做,有什么替代方案?

谢谢!

最佳答案

是的,要做的关键是记住在 promise 链中添加错误处理程序。这是通过按照 Chris 建议将第二种方法回调添加到链的末尾,或者使用 .catch(function(err){console.log(err);}) 调用结束链来完成的。

promise 链中的错误往往会进入位桶,除非您明确捕获它们。

关于javascript - 在 JavaScript 中将 Promise 链接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25413297/

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