如果你写的代码,如:
var array = [];
Collection.findOne({'name' : 'FirstItem'}, function(err, result) {
if (err) throw err;
array.push(result);
});
// Do something with the array.
console.log(array);
的array
将是空在那里,因为当你调用Collection.findOne
,它需要连接到数据库和检索数据,这将花费的时间。
因为没有阻止你的继承代码,它不会停留在那里等待接收结果,而是让其他代码仍然运行,并调用你获取数据时传递的函数在那之前,你array
将是空
你应该做的是移动你的逻辑需要使用array
,在该回调,如:
var array = [];
Collection.findOne({'name' : 'FirstItem'}, function(err, result) {
if (err) throw err;
array.push(result);
// Do something with the array.
console.log(array);
});
你在哪里检查数组? 'Collection.findOne'不是'async'函数吗? – fuyushimoya
做'结果'包含数据吗? – gypsyCoder