Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用服务装饰器查看$http.get中变量的值_Javascript_Angularjs - Fatal编程技术网

Javascript 如何使用服务装饰器查看$http.get中变量的值

Javascript 如何使用服务装饰器查看$http.get中变量的值,javascript,angularjs,Javascript,Angularjs,使用AngularJS$provide decorators,可以在不接触服务本身的情况下对服务进行猴子补丁,以包装、模拟或以其他方式转换服务中的某些方法 在我的例子中,我试图查看$http,以获取大于某个大小的get请求,当超过该大小时,将请求分解为多个请求 要实际获取$http,请执行以下操作: ... $provide.decorator('$http', function($delegate) { Object.size = function(obj) { var

使用AngularJS$provide decorators,可以在不接触服务本身的情况下对服务进行猴子补丁,以包装、模拟或以其他方式转换服务中的某些方法

在我的例子中,我试图查看$http,以获取大于某个大小的get请求,当超过该大小时,将请求分解为多个请求

要实际获取$http,请执行以下操作:

...
$provide.decorator('$http', function($delegate) {
    Object.size = function(obj) {
        var size = 0, key;
        for (key in obj) {
            if (obj.hasOwnProperty(key)) size++;
        }
        return size;
    };

    // monkey patching $http to break into multiple requests on the API, when 4096 KB are exceeded.
    var originalGet = $delegate.get;
    $delegate.get = function(args) {
        console.log("Get is called: ");
        console.log(args);
        //Can I view/manipulate/spy on $https own variables from here?

        return originalGet.apply(this, arguments);
    };


    return $delegate;


}); 

我相信我应该能够监视该函数的内部工作,但不确定如何进行

您所说的“获取大于某个大小的请求”是什么意思?我在IIS服务器上接收到由于发送太大、包含太多信息的get请求而超出请求限制的错误。我试图通过观察http正在做什么,将这些请求分成更易于管理的块,当请求太大时,改为发送两个请求。改为在请求上使用错误处理程序。你是这样说的吗。错误(函数(数据、状态、标题、配置){//Handler在此处分解请求?});--我应该有一个分解请求的函数?从这一点上,我能告诉你,根据请求的大小,它被拒绝了吗?是的,那会更好。你当然可以使用装饰,但这是为了应用程序中的每个请求都需要发生的事情,我看不出这有什么意义。