如何清除限制器模块中的超时

时间:2018-10-08 22:40:23

标签: javascript node.js asynchronous

我正在使用此模块https://www.npmjs.com/package/limiter来将http请求限制为使用以下内容的网站:

let running = true;

const limiter = new RateLimiter(
  1,
  'second'
);

function removeTokens(limiter, tokens){
    const self = this;
    return new Promise((resolve) => {
        if (!running) throw new Error('Terminated prematurely');
        limiter.removeTokens(tokens, resolve)
    });
}

Array.apply(null, {length: 1000}).map(Number.call, Number).map(number=>{
  return removeTokens(limiter,1).then(()=>{
    request('http://test.com/'+number);
  });
});

setTimeout(()=>{running=false},1000);

我的问题是我无法清除该模块使用的基础超时,因此请求不断被调用。我试图分叉存储库并创建自己的解决方案,但是它们都失败了。如果需要,我可以提供尝试的解决方案。有什么简单的方法可以清除我所缺少的超时(不构建自己的排队系统)?

0 个答案:

没有答案