簡體   English   中英

使用帶有 Firestore 的異步 function 返回未定義的數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM