Я задал этот вопрос на форуме Google для AngularJS и до сих пор не слышал об этом. Может ли кто-нибудь помочь мне понять, что здесь происходит?
Я пытаюсь периодически обновлять ресурс, и, похоже, он не работает. Я отслеживал это до тех пор, пока обещание не было получено от службы $http, но запрос XHR никогда не создается и не запускается при вызове метода в setTimeout. Однако, если я сделаю то же самое без setTimeout, все будет работать нормально.
Рабочий JSFiddle: http://jsfiddle.net/hponnu/Z62QN/2/
window.root_module = angular.module("MyApp", ['ngResource']);
function MainController($scope, $resource) {
$scope.buttonClick = function () {
var res = $resource("http://www.google.com");
res.get({}, function (response) {
alert("response");
}, function (err) {
alert("error");
});
}
}
Неработающий JSFiddle: http://jsfiddle.net/hponnu/H8aEt/10/
window.root_module = angular.module("MyApp", ['ngResource']);
window.count = 0;
function MainController($scope, $resource) {
$scope.buttonClick = function () {
setTimeout(function () {
alert("timeout: " + window.count);
var res = $resource("http://www.google.com");
res.get({},
function (response) {
alert("response: " + window.count);
window.count++;
}, function (err) {
alert("error: " + window.count);
window.count++;
});
}, 1000);
}
}
Как вы ясно увидите в сломанном jsfiddle, предупреждение об ошибке не запускается для первого запроса, если только повторное нажатие кнопки не вызывает событие щелчка. Я начал замечать это с AngularJS 1.1.4.
Есть идеи/предложения?
PS: https://groups.google.com/forum/#!topic/angular/t28mazamT0E – это ссылка на ветку групп Google.