簡體   English   中英

無法用貓鼬返回的數據填充數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM