Javascript 使用firestore的异步函数返回未定义的数组
我有一个函数,我想用firestore bd中的值返回填充的数组,但是我需要等待foreach来正确填充这个数组 我在这个网站上尝试了一些方法,但我不明白我做得不好 我的职能是: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')
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')
...
完美的我错过了这次返程。。泰!