我需要一些关于 node.js 的异步特性的帮助。我有一个 for 循环,它从数据库中收集数据。“结果”是一个数组,然后应该将其返回给主函数。
user_collection.findOne({
_id : uid
}, function(error, user) {
if(error)
callback(error)
else {
for(var j = 0; j < user.contacts.length; j++) {
if(user.contacts[j].accepted == 'true') {
user_collection.findOne({
_id : user.contacts[j].contactId
}, function(error, user) {
result.push(user);
})
}
}
callback(null, result); // This callback executes before the for-loop ends, ofc
}
});
如何确保在循环完成后执行回调?