[英]Return Array undefined with an async function with firestore
我有一個 function,我想用來自 firestore bd 的值返回填充數組,但我需要等待 foreach 正確填充這個數組。
我嘗試了這個網站上的一些方法,但我不明白我做錯了什么。
我的 function 是:
static async assistencia(id) {
console.log('Get Assistència ' + id);
let alumnesId = id;
var assistenciaAlumne = [];
db.collection('alumnes')
.doc(alumnesId)
.collection('assistencia')
.get()
.then((assistencia) => {
const promises = [];
assistencia.forEach((assistenciaDoc) => {
assistenciaAlumne.push([assistenciaDoc.id, assistenciaDoc.data().assistencia]);
promises.push(db.collection('alumnes').doc(alumnesId).collection('assistencia').get());
});
return Promise.all(promises);
})
.then(function () {
return assistenciaAlumne;
})
.catch((error) => {
console.log(error);
});
}
我稱之為 function 並帶有一個帶有以下代碼的按鈕:
var array = Alumnes.assistencia('0qSzBxVimwRlurLHNzXp');
console.log(' array', array);
是的,校友們是 class。
基本問題是這個數組在控制台上返回:
array
Promise {<resolved>: undefined}
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: undefined
我做錯了什么?
現在你從then()
返回一個值,但沒有人做任何有價值的事情。 要從assistencia
返回它,您需要提高返回值。
return db.collection('alumnes')
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.