ES6 中的Promsise.all()方法是不是优先级最高的,在所有的Promise中优先执行?

<script>    

   const url="http://127.0.0.1/index.php?id=";

   let task = [];

   let task01 = function(){

        return new Promise( function(resolve , reject){

            $.ajax({

              url: url+1,

              context: document.body,

              success: function(){

                resolve('success');

                 console.log("01");

                }

           });

        })

   }

   task[0]= new Promise( function(resolve , reject){

          $.ajax({

            url: url+2,

            context: document.body,

            success: function(){

              resolve('success');

               console.log("02");

              }

         });

      })

     task[1] = new Promise( function(resolve , reject){

         $.ajax({

           url: url+3,

           context: document.body,

           success: function(){

             resolve('success');

              console.log("03");

             }

        });

     })


    task01().then(function(value){

         Promise.all(task);

    })

</script>    

先后顺序

https://img2.mukewang.com/5b48a23b00017f4e07440304.jpg

牛魔王的故事
浏览 102回答 1
1回答

梵蒂冈之花

正常来说应该是先执行task[0]再执行task[1],因为new Promise()里面的函数是立即执行的,所以ajax的执行顺序是task[0]先于task[1]先于task01。Promise.all()的作用是只有task[0]、task[1]的状态都变成fulfilled,或者其中有一个变为rejected,才会调用Promise.all方法后面的回调函数所以task01().then(function(value){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Promise.all(task); })这里的作用就是执行task01里面的ajax,等待状态变成fulfilled,执行Promise.all(task)
打开App,查看更多内容
随时随地看视频慕课网APP