进行mongo数据库查找,打算将结果保存在范围变量中。
var users = ['kat'];
collection.find({key: key}, function(err, doc) {
if (doc) {
var firstEntry = doc[0];
users = firstEntry.users;
users.push('jack');
} else {
console.log("DB ERROR: cannot find: " + key);
}
});
console.log(users); // Why does this return only Kat, and Jack is not appended?
谢谢!
答案 0 :(得分:1)
你无法预测何时将执行回调函数..这就是为什么用户的数组没有正确更新的原因..当回调触发时,数组会自行更新,但直到它完成,数组会是一样的。回调函数仅在find事件完成时执行,但这并不意味着它将阻止执行其余代码。异步回调引发。希望有所帮助!至少暗示正确的方向:)
处理回调中的成功逻辑(console.log)..