当api在30秒内没有响应时,我需要抛出错误。
$http.get("api/data.json",{timeout : 3000}).success(function(data){
$scope.data = data;
}).error(function(data) {
console.log('api didnt respond in 30 seconds')
});
但即使在30秒后它也不会出现在错误块中。 我是angularjs的新手。请指导我。
答案 0 :(得分:1)
您需要将承诺传递给$ http超时属性:
app.controller('ctrl', function ($http, $timeout) {
$http({
method: 'GET',
url: 'api/data.json',
timeout: $timeout(function () { alert('request timed out'); }, 3000)
}).success(function (data) {
alert('request successful');
});
});