Saya membaca catatan lain tentang isu ini tetapi saya tidak dapat memikirkan cara untuk menerapkannya pada situasi saya (nod js Array.push() tidak berfungsi apabila menggunakan mongoose)
Ini ialah fungsi Mongoose async populate saya, apa yang saya mahu lakukan ialah menolak nilai ke dalam tatasusunan akhir yang mengandungi setiap ulasan, yang akan saya lakukan sesuatu nanti. Walau bagaimanapun, .push() tidak berfungsi, saya sentiasa mendapat tatasusunan kosong daripada apa yang saya baca, ini ada kaitan dengan gelung for menjadi segerak dan tidak dapat menerima nilai async, tetapi saya tidak pasti; bagaimana untuk memperbaikinya
//空数组将被填充所有分数 const allReviewsRating = [] this.populate("reviews").then(async function (allReviews) { for (const review of allReviews.reviews) { allReviewsRating.push(review.rating) } // async.map(review, allReviews.reviews) })
Tapi walaupun saya buat macam ni
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) })
Tatasusunan akhir kosong, yang membuatkan saya lebih keliru
Saya ingin tahu apa yang perlu saya lakukan supaya array saya tidak kosong dan sebenarnya mempunyai nilai yang saya mahukan
Saya rasa anda perlu menyemak,
this.populate()
函数没有填充reviews
,如果它填充了,那么问题可能出在allReviews.reviews
, bahawa tiada ulasan di antara semua komen. Semua fungsi lain adalah normal. Saya mengujinya pada sistem saya.