對Mongodb進行成功查詢以獲取新聞列表後,對於有鏈接的新聞,我搜索數據庫中的鏈接詳細信息,但是在將它們設置在修改後的新聞對象中無法將其推送到數組。爲什麼會發生?NodeJS不能使用嵌套查詢創建數組
var newsarray = []
for(i=0;i<newsfound.length;i++){
if(!newsfound[i].link._id){
newsarray.push(newsfound[i])
} else {
var tempnew = newsfound[i];
db.findOne('links',{'_id':tempnew.link._id},function(err,linkdetails){
if(err){
console.log(err)
} else {
tempnew.linkdetails = linkdetails;
newsarray.push(tempnew)
}
})
}
}
console.log(newsarray)
這樣做的結果是不含有消息的鏈接陣列或如果我嘗試一些變化與原始消息數組沒有添加的詳細信息。
這是一個**異步環境**。這就是爲什麼你將回調傳遞給db.findOne()。 – Pointy
你是什麼意思?我該怎麼辦?我嘗試了異步但仍然無法獲得修改的消息... – anges244
爲什麼downvote?我顯然理解異步上下文,但沒有看到爲什麼array.push(modifiednew)失敗。你能解釋一下嗎? – anges244