Return数组未定义,带有firestore的异步函数



我有一个函数,我想从firestorebd返回带有值的填充数组,但我需要等待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

我做错了什么?

现在您从then()返回一个值,但没有人执行任何值。要从assistencia返回它,您需要冒泡返回值。

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

相关内容

  • 没有找到相关文章