gpt4 book ai didi

javascript - Angularjs - 中止/取消运行 $http 调用

转载 作者:行者123 更新时间:2023-11-30 17:01:58 25 4
gpt4 key购买 nike

我在 angularjs 中使用 Resource 接到了一个调用,但我遇到了一些问题,因为我无法中止它所做的每个调用。我用于自动完成的这种结构..是否可以从资源调用转换为 http?这是代码

var Resource = $resource(URL, {},{ getAutocompleteResults: { method: "GET", params: {text: ""} }});

var locked = false;
function getMoreData() {

if(locked)
return;
locked = true;

Resource.autoCompleteResults()
.$promise.then(function(data) {
$scope.autocompleteViewResults = data;
locked = false;
});

}

这是我迄今为止尝试过的方法,但没有成功。

$scope.autocompleteViewResults = function () {
$http
.get(URL, {
params: {
text = ""
}
})
.success(function (data) {
$scope.autocompleteViewResults = data;
});
};

或者如果有人知道另一种方法..

最佳答案

$scope.autocompleteViewResults 变量被分配了 2 次。

试试这个:

$scope.autocompleteViewResults = {};
$scope.getResults = function(valueAsTyped) {
$http
.get(URL, {
params: {
text: valueAsTyped
}
})
.success(function (data) {
$scope.autocompleteViewResults = data;
});
};

更新

如果您需要取消旧请求。

var promiseCanceller = $q.defer();
$scope.autocompleteViewResults = {};

$scope.getResults = function(valueAsTyped) {

promiseCanceller.resolve('request cancelled'); // cancel currently running request
$http
.get(URL, {
params: {
text: valueAsTyped
},
timeout: promiseCanceller.promise // pass promiseCanceller as the timeout
})
.success(function (data) {
$scope.autocompleteViewResults = data;
});
};

关于javascript - Angularjs - 中止/取消运行 $http 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28669537/

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