"Array.push() ne fonctionne pas correctement lorsque Mongoose Populate"
P粉464113078
P粉464113078 2023-09-08 11:50:21
0
1
520

J'ai lu un autre article sur ce problème mais je n'ai pas compris comment l'appliquer à ma situation (node ​​​​js Array.push() ne fonctionne pas lors de l'utilisation de mangouste)

C'est ma fonction de remplissage asynchrone Mongoose, ce que je veux faire est de pousser une valeur dans un tableau final contenant chaque commentaire, avec lequel je ferai quelque chose plus tard. Cependant, .push() ne fonctionne pas, j'obtiens toujours un tableau vide ; d'après ce que j'ai lu, cela est dû au fait que la boucle for est synchrone et ne peut pas accepter de valeurs asynchrones, mais je ne suis pas sûr. comment y remédier

//空数组将被填充所有分数
const allReviewsRating = []
this.populate("reviews").then(async function (allReviews) {
  for (const review of allReviews.reviews) {
    allReviewsRating.push(review.rating)

  }
  // async.map(review, allReviews.reviews)

})

Mais même si je fais quelque chose comme ça

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)

})

Le tableau final est vide, ce qui me rend encore plus confus

Je veux savoir ce que je dois faire pour que mon tableau ne soit pas vide et ait réellement les valeurs que je veux

P粉464113078
P粉464113078

répondre à tous(1)
P粉289775043

Je pense qu'il faut vérifier, this.populate()函数没有填充reviews,如果它填充了,那么问题可能出在allReviews.reviews, qu'il n'y a pas de commentaires parmi tous les commentaires. Toutes les autres fonctions sont normales. Je l'ai testé sur mon système.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal