如何在响应时间过长时添加超时?我有以下在我的控制器:
$payments.getShopStatus(data.siteUrl)
.success(function(rdata, response) {
// go to next step
})
.error(function(rdata, response) {
// tell me something's wrong
// go here if there is a three-second delay too
});
在我的工厂中,我有一个简单的http返回来处理上面的:
getShopStatus: function(shop) {
var me = this;
var sUrl = String(shop);
var req = {
method: 'GET',
url: sUrl
};
return $http(req);
},
我在哪里包含超时/延迟?我需要强制它在没有响应的三秒延迟后失败
你可以在主模块app的配置函数中配置一个全局超时,如下所示:
angular.module('mainModule', [/* dependent modules */]).config(['$httpProvider', function($httpProvider){
$httpProvider.defaults.timeout = 5000;
}]);
或者对于单独的调用,你需要在$http调用中传递超时作为参数,如下所示。
getShopStatus: function(shop) {
var me = this;
var sUrl = String(shop);
return $http.get(sUrl, {timeout: 5000});
},