【发布时间】:2021-04-18 00:25:32
【问题描述】:
我正试图弄清楚如何异步制作这个 Firestore 集合。我目前将它放在递归函数中,因为 for 循环也不起作用。我认为通过使用递归函数,它可以让我更好地控制何时想要重新启动该函数,但它仍然无法正常工作。请帮忙。我知道这对大多数人来说很容易解决。
const fakeIt = async () => {
console.log("A");
var itemsCreated = 1;
items(0, itemsCreated);
async function items(num, itemsCreated){
if(num < itemsCreated){
console.log("B");
await db.collection('items').add({
active: true
}).then(async (item) => {
console.log("C");
items(num + 1, itemsCreated)
});
}else{
console.log("Done");
}
}
}
Array(2).fill(0).forEach(fakeIt);
我得到的打印输出如下:
A
B
A
B
C
Done
C
Done
我需要以下结果:
A
B
C
A
B
C
Done
【问题讨论】:
-
你应该是
awaitingfakeIt吗? -
您在
aysnc function items(...中有错字,应该是async而不是aysnc。另外,如果你也在使用await,为什么还要使用then? -
你也没有向
fakeIt传递任何东西,Array.fill()位只是为了运行它两次? -
不应同时使用 await 和 then :)
-
@Noah - 我想我需要等待 fakeIt。这可能是问题所在。
标签: javascript google-cloud-firestore async-await