java - 如何为使用 angularjs ngResource ($resource) 进行的 REST 调用设置时间限制

标签 java angularjs rest ngresource

我正在使用 angularjs 通过 REST 调用 java api。

var app = angular.module("MyApp", ["ngResource","ngProgress"])
.factory('ConnectionData',function ($resource){
  return $resource('URI');
  });
  
  
function connectionTestController($scope,ConnectionData,ngProgress,$timeout){

$scope.connectionTest = function(){


    var success = function(data, getResponseHeaders){
      ngProgress.complete();
      $scope.datas = data;
      $('#testConnectionBtn').attr("disabled", false);
    };
    var failure = function(data){

      if(data.status == 404) {    

        $scope.errorString = data.status+", Request Error, Try Again"; 

      }else{

        $scope.datas = data.data;
        $scope.errMessage = $scope.datas.message;
      }
      ngProgress.complete();
      $('#testConnectionBtn').attr("disabled", false);

    };


    ConnectionData.get(success,failure);
  
  };
};
  
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>

<div class="col-md-4" ng-controller="connectionTestController">
     <h1>Connection Test</h1>
     <p><button class="btn btn-primary" ng-click="connectionTest()" id="testConnectionBtn">Click to Test</button></p>


     Code: <label id="code">{{datas.code}}</label><br>
     Status: <label id="status">{{datas.status}}</label><br>
     Data: <label id="data">{{datas.data}}</label><br>
     Message: <label id="message">{{errMessage}}</label><br><br>

     <label id="customeError">{{errorString}}</label><br>

   </div>

单击按钮时正在进行 REST 调用。我想为请求设置一个时间限制。 (例如:30 秒。)如果在时限内未收到回复,则应显示错误消息。

最佳答案

您可以为您的操作设置超时选项,例如:

{ 
   'get':    {method:'GET', timeout:2000},
   'save':   {method:'POST', timeout:2000},
   'query':  {method:'GET', isArray:true, timeout:2000},
   'remove': {method:'DELETE', timeout:2000},
   'delete': {method:'DELETE', timeout:2000}
};

这可以在 ConnectionData 工厂中完成。

之后,你可以像这样:

  ConnectionData.get({id:'SomeId'}).$promise.then(success).catch(failure);

这有意义吗?

关于java - 如何为使用 angularjs ngResource ($resource) 进行的 REST 调用设置时间限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26114222/

相关文章:

java - Hystrix CircuitBreakerSleepWindowInMilliseconds 无法按预期工作

javascript - 像 StackOverflow 的输入标签一样的 AngularJS 自动完成标签?

rest - 使用 tshark 在 apache 服务器上捕获传入的 RESTAPI 流量

java - 在运行一个简单的 MapReduce 程序时获取 java.lang.ClassCastException : class java. lang.String

java - 如何在右/左 Windows 10 屏幕上自定义关闭/最小化/最大化菜单停靠栏

java - JVM如何手动使用Native Stack进行JAVA函数调用

javascript - 将 Angular 范围变量传递给 Javascript

javascript - Protractor - 选择文本

rest - 从 Slack slash 命令调用 Jenkins

python - 将 CVS/SVN 转换为编程片段站点