gpt4 book ai didi

javascript - 我怎样才能取消所有未决的 $timeouts?

转载 作者:行者123 更新时间:2023-11-30 16:38:48 25 4
gpt4 key购买 nike

我有一些代码使用 AngularJS $timeout 在特定时间间隔使用循环多次调用另一个函数。我正在尝试创建一个取消函数,它将停止处理所有 $timeouts。我意识到我可以用另一个循环来做到这一点,遍历每个 $timeout,但有时页面需要创建数千个 $timeouts,所以我真的希望有某种方法可以停止所有当前未决的 $timeouts .这里的文档 https://docs.angularjs.org/api/ng/service/ $timeout 似乎只真正谈论使用 cancel() 来停止特定的 promise 。

是否可以在 AngularJS 中一次取消所有当前未决的 $timeouts,如果可以,如何取消?

这是相关代码的片段:

for(var i=1; i<=$scope.catalog.pages; i++) {
$scope.catalog.timeouts['fetch'+i] = $timeout(function() {
count++;
if (!$scope.catalog.isCancelled) {
$scope.results($scope.catalog.dataFile, {currentPage: count});
} else {
//cancel all the remaining timeouts somehow
}
}, 10*i);
}

最佳答案

Angular 超时与 promises 一起工作,您可以调用它的 cancel 方法。 $timeout.cancel

$scope.catalog.timeouts.forEach(function(promises) {
promises.cancel && promises.cancel();
});

关于javascript - 我怎样才能取消所有未决的 $timeouts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32314833/

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