我在queue.enqueue
的每次迭代中都有一个异步函数调用docs.forEach
。如何确定何时是docs.forEach
的最后一次迭代?
以下代码多次打印console.log
条消息,而不是最后一次queue.enqueue
来电。
var mongojs = require('mongojs')
var db = mongojs('localhost/test')
var collection = db.collection('myCollection')
var monq = require('monq')
var client = monq('mongodb://localhost:27017/test')
var queue = client.queue('testQueue')
async.waterfall([
function(callback) {
collection.find({}, function(err, docs) {
callback(null, docs)
})
},
function(docs, callback) {
docs.forEach(function(doc, index) {
// Async call here
queue.enqueue('someTask', doc, function(err, job) {
// Determining the last iteration of docs.forEach
if(index = docs.length-1) {
console.log('this is the last async call')
callback(null)
}
}
})
}
])