async/queue js库没有显式的并发限制,但是默认情况下它将会依次处理队列中的任务。如果您想要并行执行任务,您可以设置并行数量。例如,以下代码将会同时执行最多3个任务:
const async = require('async');
const q = async.queue((task, callback) => {
console.log('Working on task ' + task.name);
callback();
}, 3);
q.push({name: 'task1'}, () => {
console.log('Finished processing task1');
});
q.push({name: 'task2'}, () => {
console.log('Finished processing task2');
});
q.push({name: 'task3'}, () => {
console.log('Finished processing task3');
});
q.push({name: 'task4'}, () => {
console.log('Finished processing task4');
});
// Output:
// Working on task task1
// Working on task task2
// Working on task task3
// Finished processing task1
// Working on task task4
// Finished processing task2
// Finished processing task3
// Finished processing task4
在这个例子中,我们创建了一个队列,它最多可以同时处理3个任务。我们添加了4个任务到队列中,然后看到这些任务被并行执行,但同一时间最多只有3个任务在进行。