如何重用与AngularJS重试逻辑HTTP请求重试、逻辑、AngularJS、HTTP

2023-09-10 20:28:26 作者:半世流离

是否有可能执行同样的HTTP请求不止一次在AngularJS?即不重新定义两次同样的要求?

  VAR重试= FALSE;
VAR REQ = $ http.get('ajax.php A = StartSession和放大器;参考='+ code);
req.success(函数(RES){
    警报(RES);
});
req.error(函数(RES){
    如果(重试==假)
       //运行再次请求req.get(); ?
    重试= TRUE;
});
 

解决方案

这是什么样的服务和工厂进行了发言:

  app.factory(的DataFactory,[$ HTTP,函数($ HTTP){
    返回 {
        调用:函数(code){
            返回$ http.get('ajax.php A = StartSession和放大器;参考='+ code)
        }
    }
}]);
 

注入,并使用

  app.controller(myCtrl,[的DataFactory功能(的DataFactory){
    变量code =我的code;
    dataFactory.call(code).success(函数(RES){
        //疑难杂症
    });
}]);
 
核心概览

Is it possible to execute the same HTTP request more than once in AngularJS? i.e. without re-defining the same request twice?

var retry = false;
var req = $http.get( 'ajax.php?a=StartSession&ref=' + code );
req.success(function(res) {
    alert(res);
});
req.error( function(res) {
    if(retry == false)
       //run request again req.get(); ?
    retry = true;
});

解决方案

It's what services and factories were made for:

app.factory("dataFactory", ["$http", function($http) {
    return {
        call: function(code) {
            return $http.get( 'ajax.php?a=StartSession&ref=' + code )
        }
    }
}]);

Inject and use

app.controller("myCtrl", ["dataFactory", function(dataFactory) {
    var code = "myCode";
    dataFactory.call(code).success(function(res) {
        //gotcha
    });
}]);