[AngularJS]:在http GET

时间:2016-08-10 05:18:41

标签: angularjs http timeout

如果响应时间太长而无法响应,您如何添加超时?我的控制器中有以下内容:

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

我在哪里包含超时/延迟?我需要在没有响应的三秒延迟后强制它失败。

1 个答案:

答案 0 :(得分:0)

您可以在主模块应用程序配置功能中进行全局超时配置,如下所示。

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