亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ES6 中的Promsise.all()方法是不是優先級最高的,在所有的Promise中優先執行?

ES6 中的Promsise.all()方法是不是優先級最高的,在所有的Promise中優先執行?

牛魔王的故事 2018-07-06 22:10:55
<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>    先后順序
查看完整描述

1 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

正常來說應該是先執行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){
     Promise.all(task);
})

這里的作用就是執行task01里面的ajax,等待狀態變成fulfilled,執行Promise.all(task)


查看完整回答
反對 回復 2018-07-13
  • 1 回答
  • 0 關注
  • 130 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號