我希望我的前端应用程序能够在第一个应用程序关闭的情况下切换到另一个api
例如:我拨打https://api.example.com/users?name=bob - 然后我收到net::ERR_CONNECTION_TIMED_OUT
(Chrome XHR回复),表示api没有响应。我现在希望我的前端改为https://api1.example.com/users?name=bob。
我查看了AngularJS 1.5.7 $资源的文档,该资源声明它采用类型为timeout
的操作参数{number}
。但是,将其设置为例如500仍会在大约2分钟后抛出net::ERR_CONNECTION_TIMED_OUT
!
通缉流程:
伪代码:
angular.forEach(fallback_urls, function(url) {
$resource(url + '/users?name=bob', {}, {timeout: 10}).get()
});
答案 0 :(得分:1)
您已在$资源上声明了您的操作错误。
$resource(url + '/users?name=bob', {}, {
'get': {
method: 'GET',
timeout: 10000
}
});
您可能还想查看“可取消”选项。
var res = $resource(url + '/users?name=bob', {}, {
'get': {
method: 'GET',
cancellable: true
}
});
var response = res.get();
var timeoutPromise = $timeout(function(){
response.$cancelRequest();
},10000);
response.$promise.then(function(){
$timeout.cancel(timeoutPromise);
});
然后以某种方式循环遍历您声明的备份$ resource对象。如果呼叫结算,当然会中止超时!希望这能为你提供一些线索!