我正在使用mongodb的node.js驱动程序。我在下面得到非阻塞行为。这是因为Node.js驱动程序api?有阻止的api /选项吗? 我想避免过度使用promises 并避免对array.forEach()的承诺。
User.prototype.findUsername = function(user) {
return this.collection.find(user);
};
function deleteUser() {
var deleteDocs;
var document = user.findUsername({'username': 'bob123'});
document.forEach(function(mydoc) {
mydoc.pets.forEach(function(doc) {
console.log(doc.data)
deleteDocs = doc.data;
});
})
return deleteDocs;
}
bob = api.deleteUser();
console.log("outside of the function- " + bob)
outside of the function- undefined
[ 56da547268b9d17317d05f28 ]
答案 0 :(得分:2)
MongoDB' forEach
是同步的,因为它执行IO,在node.js中(通常)是异步的。原生forEach
(Array.prototype.forEach
)不会执行任何IO,这就是它同步的原因。