processItem什么时候开始执行。是否在某些项目被推入队列后立即开始?或者 for 循环必须在队列中的第一项开始执行之前完成?
var processItem = function (item, callback) {
console.log(item)
callback();
}
var myQueue = async.queue(processItem, 2)
for (index = 0; index < 1000; ++index) {
myQueue.push(index)
}
简单的答案是,所有任务都将添加到队列中,然后以随机(未定义)顺序执行。
背景信息,来自https://github.com/caolan/async#queueworker-concurrency
队列(工作线程,并发)
创建一个queue
具有指定的对象concurrency
。添加到队列中的任务是并行处理的(最多concurrency
限制)。我摔倒worker
正在进行中,task
排队直到有一个可用为止。一旦工人完成一个task
, that task
's callback
叫做。
换句话说,顺序是不明确的。如果您需要按特定顺序执行任务,则应该使用不同的异步原语,例如series(tasks, [callback])
https://github.com/caolan/async#seriestasks-callback
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)