繁体   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