[AngularJS]:在http GET上添加超时延迟



如何在响应时间过长时添加超时?我有以下在我的控制器:

$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});
 },

相关内容

  • 没有找到相关文章

最新更新