我在for循环中有一个名为populateFavoriteItem的异步函数:
var result = [];
for (var i = 0; i <array.length ; i++) {
populateFavoriteItem(accountId,array[i],function(doc){
result.push(doc);
//mark 1
})
// if (i == array.length - 1) {
// console.log(result);
// callback(result);
// }
}
//mark 2
console.log(result);
callback(result);
它总是首先运行标记2然后运行到标记1.因此,我得到一个空结果数组 . 似乎结果不是populateFavoriteItem回调函数 .
我试图在for循环中写if()条件但得到相同的结果,我该怎么办?
1 回答
使用Node.js eventEmitter: