Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
Node.js控制每秒的post调用数_Node.js_Post - Fatal编程技术网

Node.js控制每秒的post调用数

Node.js控制每秒的post调用数,node.js,post,Node.js,Post,我订阅了一个内部api(POST请求),该api限制我每秒进行5次调用 node.js用于进行这些rest api调用 如何编写代码来限制每秒调用的api调用数?使用setInterval(makeAPICall,200)每200毫秒执行一次API调用 每次执行makeAPICall函数时,您都会从队列中进行一次调用 var queue = [ { arg1 : 'arg1value', arg2 : 'arg2value' }, {

我订阅了一个内部api(POST请求),该api限制我每秒进行5次调用

node.js用于进行这些rest api调用

如何编写代码来限制每秒调用的api调用数?

使用
setInterval(makeAPICall,200)
每200毫秒执行一次API调用

每次执行
makeAPICall
函数时,您都会从队列中进行一次调用

var queue = [
    {
        arg1 : 'arg1value',
        arg2 : 'arg2value'
    },
    {
        arg1 : 'arg1value',
        arg2 : 'arg2value'
    }
];

setInterval(function() {
    var arguments = queue[0];

    // API call function, using arguments
    makeAPICall(arguments.arg1, arguments.arg2);

    // Remove from queue
    queue.splice(0, 1);
}, 200);

您的节点应用程序是一个实用程序(即:它是否发起调用)还是更像一个代理(即:最终用户发出请求)node.js正在调用调用n@Stijn Martens answer应该适合您。我使用的是setInterval(makeAPICall,200,argumentsToApIcall)。我的argumants在一个数组中,对于数组中的每个记录,都必须进行api调用。如何在循环中设置间隔并将其清除?现在我明白你的意思了。因此,一旦队列变空,我应该清除间隔