[英]Can't populate an array with data returned from mongoose
我有以下代碼:
var array = [];
Collection.findOne({'name' : 'FirstItem'}, function(err, result) {
if (err) throw err;
array.push(result);
});
現在,貓鼬會按原樣返回結果,但是我無法將其添加到數組中-它仍然為空。 有什么問題?
如果您編寫如下代碼:
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);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.