„Array.push() funktioniert nicht richtig, wenn Mongoose Populate'
P粉464113078
P粉464113078 2023-09-08 11:50:21
0
1
517

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

P粉464113078
P粉464113078

Antworte allen(1)
P粉289775043

我认为你需要检查一下,this.populate()函数没有填充reviews,如果它填充了,那么问题可能出在allReviews.reviews,即所有评论中没有评论。其他所有功能都正常。我在我的系统上进行了测试。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage