Javascript 如何逐个执行三个异步函数

Javascript 如何逐个执行三个异步函数,javascript,asynchronous,functional-programming,Javascript,Asynchronous,Functional Programming,如果已经有人问我,我很抱歉,但是我已经在互联网上搜索过了,什么都没有找到 我正在使用firestore和javascript 到目前为止,我已经尝试过这个&还有很多其他的东西 var App function A (){ firebase.database().ref('Info/').once('value').then(function(snapshot){ var Ipz = (snapshot.val() && snapshot.val().I

如果已经有人问我,我很抱歉,但是我已经在互联网上搜索过了,什么都没有找到 我正在使用firestore和javascript 到目前为止,我已经尝试过这个&还有很多其他的东西

var App

  function A (){

    firebase.database().ref('Info/').once('value').then(function(snapshot){
      var Ipz = (snapshot.val() && snapshot.val().Iplist) || 'Anonymous';
      console.log(Ipz)
     })

    console.log('A')
   }


   function B (){
    console.log('B')
   }


      App = Promise.resolve();

      App = App.then(A).then(B);

      App.then(() => {
      console.log("All done");
        })
我的输出:-

A
B
All done
JdGJtwEe8rb394BlX4IkjUfH4Wv1;JdGJtwEe8rb394BlX4IkjUfH4Wv1;
而我想要这个输出

JdGJtwEe8rb394BlX4IkjUfH4Wv1;JdGJtwEe8rb394BlX4IkjUfH4Wv1;
A
B
All done

您需要使用
将异步数据库功能与
A
B
所有已完成的
功能链接起来。然后
连接每个功能:

function lookup() {
  return firebase.database().ref('Info/').once('value')
    .then(function(snapshot) {
      var Ipz = (snapshot.val() && snapshot.val().Iplist) || 'Anonymous';
      console.log(Ipz)
      // if you want to pass Ipz to `A` as a parameter, then `return Ipz;` here
    });
}
function A() {
  console.log('A');
}
function B() {
  console.log('B');
}
lookup()
  .then(A)
  .then(B)
  .then(() => console.log("All done"));
可能重复的