Ich habe einen anderen Beitrag zu diesem Problem gelesen, konnte aber nicht herausfinden, wie ich es auf meine Situation anwenden kann (node js Array.push() funktioniert bei Verwendung von Mungo nicht)
Dies ist meine asynchrone Auffüllfunktion von Mongoose. Ich möchte einen Wert in ein endgültiges Array übertragen, das jeden Kommentar enthält, mit dem ich später etwas machen werde. Allerdings funktioniert .push() nicht, ich bekomme immer ein leeres Array; nach dem, was ich gelesen habe, hat das damit zu tun, dass die for-Schleife synchron ist und keine asynchronen Werte akzeptieren kann, aber ich bin mir nicht sicher wie man es behebt
//空数组将被填充所有分数 const allReviewsRating = [] this.populate("reviews").then(async function (allReviews) { for (const review of allReviews.reviews) { allReviewsRating.push(review.rating) } // async.map(review, allReviews.reviews) })
Aber selbst wenn ich so etwas mache
const allReviewsRating = [] this.populate("reviews").then(async function (allReviews) { allReviewsRating.push(`1`) for (const review of allReviews.reviews) { allReviewsRating.push(review.rating) } // async.map(review, allReviews.reviews) })
Das letzte Array ist leer, was mich noch mehr verwirrt
Ich möchte wissen, was ich tun muss, damit mein Array nicht leer ist und tatsächlich die Werte hat, die ich möchte
我认为你需要检查一下,
this.populate()
函数没有填充reviews
,如果它填充了,那么问题可能出在allReviews.reviews
,即所有评论中没有评论。其他所有功能都正常。我在我的系统上进行了测试。