我正在尝试我认为是promise-queue
的基本用例var Queue = require("promise-queue")
let queue = new Queue();
//add first item to queue
queue.add(() => {
console.log('start 1');
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('finished processing');
resolve();
},
5000);
});
});
//add second item to queue
queue.add(() => { console.log('start 2'); });
导致输出:
>start 1
>start 2
>finished processing
第二项在第一项完成之前开始。我错过了什么?
试试此代码示例runkit
答案 0 :(得分:1)
如果你改变了
let queue = new Queue();
使用并发参数
let queue = new Queue(1);
然后您的代码按预期工作
也许promise-queue
中有一个> 1默认并发查看the source code,默认为
Infinity
并发Promises