gpt4 book ai didi

javascript - Angular Promise 能活多久?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:43 24 4
gpt4 key购买 nike

我正在尝试了解 Angular 服务和组件的生命周期。

假设我有一个使用 http 服务的 Controller :

function MyController($scope, $http) {
$http.get('/service').success(function(data) {
// handle the response
});
}

问题是这个 Controller 可能附加到一个 View 。如果 View 已被删除,我想确保响应被丢弃,这是为了防止与可能在应用程序的其他部分触发的其他请求发生冲突。如果 View 被删除, Controller 的实例是否会被销毁并随之取消来自 $http 服务的未决调用?例如,当用户离开页面(没有重新加载)时导致新部分的 Javascript 呈现?

[编辑] 我创建了一个 jsfiddle这表明,至少对于 $timeout 服务,挂起的操作在 $scope 通过导航被销毁后仍在运行。有没有一种简单的方法可以将异步操作附加到作用域,以便它们自动销毁?

最佳答案

首先,附加对您的 promise 的引用,然后将该引用传递给 cancel 函数。这解决了拒绝的 promise 。所以你也可以只使用 promise.reject() 代替 cancel(promise)

function MyController($scope, $http) {
var promise = $http.get('/service');

promise.success(function(data){

});

$scope.$on(
"$destroy",
function() {
promise.reject("scope destroyed, promise no longer available");
}
);
}

关于javascript - Angular Promise 能活多久?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22003861/

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