Javascript Then()承诺无法异步工作

Javascript Then()承诺无法异步工作,javascript,google-cloud-firestore,async-await,Javascript,Google Cloud Firestore,Async Await,我正试图找出如何异步创建这个Firestore集合。我现在把它放在递归函数中,因为for循环也不起作用。我想通过使用递归函数,当我想重新启动函数时,它会给我更多的控制,但它仍然不起作用。请帮忙。我知道这对大多数人来说都很容易解决 const fakeIt=async()=>{ 控制台日志(“A”); var itemsCreated=1; 项目(0,项目已创建); 异步函数项(num,itemsCreated){ 如果(num{ 控制台日志(“C”); 项目(数量+1,项目已创建) }); }否

我正试图找出如何异步创建这个Firestore集合。我现在把它放在递归函数中,因为for循环也不起作用。我想通过使用递归函数,当我想重新启动函数时,它会给我更多的控制,但它仍然不起作用。请帮忙。我知道这对大多数人来说都很容易解决

const fakeIt=async()=>{
控制台日志(“A”);
var itemsCreated=1;
项目(0,项目已创建);
异步函数项(num,itemsCreated){
如果(num{
控制台日志(“C”);
项目(数量+1,项目已创建)
});
}否则{
控制台日志(“完成”);
}
}
}
数组(2).fill(0).forEach(fakeIt);
我得到的打印结果如下:

A
B
A
B
C
Done
C
Done
我需要以下结果:

A
B
C
A
B
C
Done

我通过对fakeIt循环使用递归函数来解决这个问题。我摆脱了所有的异步等待,一切都很完美。感谢那些发表上述评论的人

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)
函数fakeIt(数字、计数){
如果(数量<计数){
控制台日志(“A”);
var itemsCreated=1;
项目(0,项目已创建);
功能项(num,itemsCreated){
如果(num{
控制台日志(“C”);
项目(数量+1,项目已创建)
});
}否则{
fakeIt(数字+1,计数)
}
}否则{
控制台日志(“完成”);
}
}
fakeIt(0,2)

你应该
等待
fakeIt
吗?你在
aysnc函数项中有一个输入错误(…
,它应该是
异步的
而不是
aysnc
。另外,如果你也在使用
等待
,那么你为什么要使用
呢?你也没有将任何东西传递给
fakeIt
,这是
数组。fill()
bit只运行两次?不应该同时使用wait和then:)@Noah-我想我需要等待fakeIt。这可能就是问题所在。