Я добавил функциональность к кнопке, чтобы остановить предыдущую функцию при каждом ее нажатии.
Я делаю это с помощью обещаний Angular $ q.defer и конфигурации тайм-аута для $ http.get метод, который работает в течение длительного периода времени.
Теперь это работает на моем Mac / Chrome (79), но не работает на Windows / Chrome (78) на моем виртуальном рабочем столе ; Я часами устранял неполадки и не вижу ничего плохого в коде, он относительно простой.
Я обеспокоен тем, что он работает на одном сервере Tomcat 7, но не на другом сервере TC7, пожалуйста, дайте мне знать, что может быть вызывая эту проблему.
Спасибо
app.controller('queryController', function($scope, $http, $q, ROOT_API) {
$scope.canceller = $q.defer();
var reset = function(reason){
$scope.canceller.resolve(reason);
$scope.canceller = $q.defer();
}
$scope.query = async function(name, matchMode, domain) {
reset("query cancelled");
await $http.get(ROOT_API+"query/asset/"+name+"/"+matchMode+"/"+domain, { timeout: $scope.canceller.promise }).success(
async function(data){
$scope.results=data;
if($scope.results.length > 0) await setPageValues($scope.results);
$scope.totalResults=data.length;
$scope.displayResults=$scope.results;
});
}
}