我一直在反覆探討如何使用Angular的$資源取消正在進行的REST調用。我還沒有找到任何解決方案,但是從Angular文檔中我得到了應該有可能的印象。
從文檔:
使用: $資源(網址[,paramDefaults] [,行動]);
一個文檔中定義的所有操作:
超時 - {號|服務承諾} - 超時以毫秒爲單位,或已解決時,應中止請求承諾。
有沒有人有一個工作示例,顯示如何使用此超時操作並承諾取消正在進行的請求?可能嗎?
我一直在反覆探討如何使用Angular的$資源取消正在進行的REST調用。我還沒有找到任何解決方案,但是從Angular文檔中我得到了應該有可能的印象。
從文檔:
使用: $資源(網址[,paramDefaults] [,行動]);
一個文檔中定義的所有操作:
超時 - {號|服務承諾} - 超時以毫秒爲單位,或已解決時,應中止請求承諾。
有沒有人有一個工作示例,顯示如何使用此超時操作並承諾取消正在進行的請求?可能嗎?
我的代碼示例:
var canceler = {};
$scope.doSomething = function() {
canceler = $q.defer();
$http.post('url', data, {timeout: canceler.promise}).
success(function(data) {
}).
error(function() {
});
};
function cancelPost() {
canceler.resolve(); //aborts request
}
}
感謝您的快速回復。你指出了正確的方向。不過,我在我的$資源上放置工廠時會遇到麻煩,因爲它會多次使用。看起來超時配置只能在使用這種模式時初始化一次。我解決這個問題的方式是將$資源從服務中移出並放入控制器中,以便每次給我的休息服務打電話時都可以設置新的承諾。過了一段時間,我還決定從$ resource更改爲$ http。 – jstensen