angular js $ http тайм-аут не отменяется на рабочей машине - PullRequest
0 голосов
/ 30 января 2020

Я добавил функциональность к кнопке, чтобы остановить предыдущую функцию при каждом ее нажатии.

Я делаю это с помощью обещаний 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;   
        });
}
}
...