Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.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截取方法调用参数_Javascript - Fatal编程技术网

使用JavaScript截取方法调用参数

使用JavaScript截取方法调用参数,javascript,Javascript,我有许多方法可以调用API端点。每个端点都需要一个长度限制为100的id数组。通常,我必须多次调用这些端点(由于糟糕的设计等),因为我有大约400个批次。所以在这个例子中,我最终不得不将id分为4组,并发出4个请求 我有一些低级方法,它们只是使用superagent发出HTTP请求: getProducts (ids, token) { return Request .send({ ids : ids }) } 其中有相当一部分,我不愿意将它们全部更改为将ID拆分为多个集合,而

我有许多方法可以调用API端点。每个端点都需要一个长度限制为100的id数组。通常,我必须多次调用这些端点(由于糟糕的设计等),因为我有大约400个批次。所以在这个例子中,我最终不得不将id分为4组,并发出4个请求

我有一些低级方法,它们只是使用superagent发出HTTP请求:

getProducts (ids, token) {
  return Request
      .send({ ids : ids })
}
其中有相当一部分,我不愿意将它们全部更改为将ID拆分为多个集合,而是返回一个请求数组

我的想法是创建某种形式的包装器,可以拦截调用,将id分解为多个集合,然后返回一个请求数组。也许是这样的:

var chunk = function (op) {
    return _.wrap(op, function (func, interceptor) {
        var args = interceptor(_.drop(arguments, 1));

        return func.apply(this, args);
    });
}
我一直坚持的是如何使用这种方法首先生成集合,然后生成请求。如果我想保留getProducts的签名,似乎真的很难做到

var requests = chunk(getProducts);
是否有其他技术适合于这种方法,或者这简直是疯了?我愿意接受任何替代技术。

函数多请求(ID、令牌){
function multiRequest(ids, token) {
    var CHUNK_SIZE = 100;
    var requests = [];
    for (var i = 0; i < ids.length; i += CHUNK_SIZE) {
        requests.push(getProducts(ids.slice(i, i + CHUNK_SIZE)));
    }
    return requests;
}
var CHUNK_SIZE=100; var请求=[]; 对于(变量i=0;i
您可以像调用
getProducts
一样调用它,它将返回一个请求数组,这些请求被分成100个ID组。

函数multiRequest(ID,令牌){
var CHUNK_SIZE=100;
var请求=[];
对于(变量i=0;i

您可以像调用
getProducts
一样调用它,它将返回一组请求,这些请求被分成100个ID。

谢谢您的回答!但我试图避免的是在我的所有方法中重复上面的代码(或类似代码)。我有大约10个需要以这种方式工作。谢谢回答!但我试图避免的是在我的所有方法中重复上面的代码(或类似代码)。我有大约10个人需要这样工作。