Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用firestore的异步函数返回未定义的数组_Javascript_Jquery_Asynchronous_Google Cloud Firestore_Async Await - Fatal编程技术网

Javascript 使用firestore的异步函数返回未定义的数组

Javascript 使用firestore的异步函数返回未定义的数组,javascript,jquery,asynchronous,google-cloud-firestore,async-await,Javascript,Jquery,Asynchronous,Google Cloud Firestore,Async Await,我有一个函数,我想用firestore bd中的值返回填充的数组,但是我需要等待foreach来正确填充这个数组 我在这个网站上尝试了一些方法,但我不明白我做得不好 我的职能是: static async assistencia(id) { console.log('Get Assistència ' + id); let alumnesId = id; var assistenciaAlumne = []; db.collection('alumnes')

我有一个函数,我想用firestore bd中的值返回填充的数组,但是我需要等待foreach来正确填充这个数组

我在这个网站上尝试了一些方法,但我不明白我做得不好

我的职能是:

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);
        });
}
我用一个按钮调用这个函数,按钮上有以下代码:

var array = Alumnes.assistencia('0qSzBxVimwRlurLHNzXp');
    console.log(' array', array);
是的,校友们,这是一门课

基本问题是此数组在控制台上返回:

array 
Promise {<resolved>: undefined}
    __proto__: Promise
    [[PromiseStatus]]: "resolved"
    [[PromiseValue]]: undefined
数组
承诺{:未定义}
__承诺
[[PromiseStatus]]:“已解决”
[[PromiseValue]]:未定义

我做错了什么?

现在您从
then()
返回一个值,但是没有人做任何有价值的事情。要从
assistencia
返回它,您需要弹出返回值

return db.collection('alumnes')
  ...

完美的我错过了这次返程。。泰!