[英]Javascript Then() Promise is not working Asynchronously
我試圖弄清楚如何異步制作這個 Firestore 集合。 我目前將它放在遞歸 function 中,因為 for 循環也不起作用。 我認為通過使用遞歸 function 可以讓我更好地控制何時啟動 function,但它仍然無法正常工作。 請幫忙。 我知道這對大多數人來說很容易解決。
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
我通過對 fakeIt 循環使用遞歸 function 來解決這個問題。 我擺脫了所有的異步等待,一切都很完美。 感謝那些發表上述評論的人。
function fakeIt(number, count) {
if (number < count) {
console.log("A");
var itemsCreated = 1;
items(0, itemsCreated);
function items(num, itemsCreated){
if(num < itemsCreated){
console.log("B");
db.collection('items').add({
active: true
}).then(async (item) => {
console.log("C");
items(num + 1, itemsCreated)
});
}else{
fakeIt(number+1, count)
}
}else{
console.log("Done");
}
}
fakeIt(0, 2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.