Javascript 为什么瓶颈.js中的maxConcurrent设置没有';不行?
我正在使用npm软件包。我的限制器设置如下:Javascript 为什么瓶颈.js中的maxConcurrent设置没有';不行?,javascript,node.js,rate-limiting,Javascript,Node.js,Rate Limiting,我正在使用npm软件包。我的限制器设置如下: const limiter = new Bottleneck({ maxConcurrent: 3, minTime: 100 }); 最多有3个任务同时运行。 但是,我发现任何时候都不会有超过1个任务同时运行 这是我的代码: const Bottleneck = require('bottleneck'); const main = () => { console.log('starting mai
const limiter = new Bottleneck({
maxConcurrent: 3,
minTime: 100
});
最多有3个任务同时运行。
但是,我发现任何时候都不会有超过1个任务同时运行
这是我的代码:
const Bottleneck = require('bottleneck');
const main = () => {
console.log('starting main');
const limiter = new Bottleneck({
maxConcurrent: 3,
minTime: 100
});
const worker = (text, limiterCb) => {
Promise.resolve()
.then(() => {
console.log(`starting ${text}`);
let res;
for (let i = 0; i < 10000000000; i++) {
res++
}
console.log(`ending ${text}`);
limiterCb();
});
};
const limiterCb = res => console.log('limiter finished');
limiter.submit(worker, 'hello', limiterCb);
limiter.submit(worker, 'hello', limiterCb);
limiter.submit(worker, 'hello', limiterCb);
limiter.submit(worker, 'hello', limiterCb);
}
main();
console.log('exiting')
const瓶颈=需要(“瓶颈”);
常量main=()=>{
log('starting main');
常数限制器=新瓶颈({
马克斯:3,
分钟:100
});
const worker=(文本,limiterCb)=>{
承诺,决心
.然后(()=>{
log(`starting${text}`);
让我们重新来过;
对于(设i=0;i<1000000000;i++){
res++
}
log(`ending${text}`);
limiterCb();
});
};
const limiterCb=res=>console.log('limiter finished');
提交(工人“你好”,limiterCb);
提交(工人“你好”,limiterCb);
提交(工人“你好”,limiterCb);
提交(工人“你好”,limiterCb);
}
main();
console.log('正在退出')
我看到的是,第一个任务开始并完成,然后是第二个任务,以此类推。但由于每个任务需要100毫秒以上的时间才能完成,因此我预计会有多个任务同时运行