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

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

es6中的promise.all使用問題

es6中的promise.all使用問題

慕碼人2483693 2018-10-24 17:15:22
promise.all接收的promise數組是按順序執行的還是一起執行的,也就是說返回的結果順序是固定的嗎。edit1:根據大家的回答,應該是同步執行的,但是這樣就有效率問題了,如果想改成異步執行怎么辦呢。edit2:弄糊涂了,有些人認為結果是按順序返回,有些人認為結果順序不確定。var a = new Promise(function  (resolve,reject) {     setTimeout(function  () {         resolve('aaa');     },3000); });var b = new Promise(function  (resolve,reject) {     setTimeout(function  () {         resolve('bbb');     },1000); });var p = Promise.all([a,b]); p.then(function(val) {    console.log(val); });//結果:['aaa','bbb']我寫了個測試,可以看到a的時間雖然比較長,但a的結果確實排在了b的前面。返回結果的確是按順序排列的。但是,var a = new Promise(function  (resolve,reject) {     setTimeout(function  () {         resolve('aaa');     },3000); });var b = new Promise(function  (resolve,reject) {     setTimeout(function  () {         resolve('bbb');     },3000);//改成3秒});var p = Promise.all([a,b]); p.then(function(val) {    console.log(val); });//結果:['aaa','bbb']將b的時間也改成3秒后,發現整體運行時間并沒有改變。所以我認為,promise應該是并發執行的,這樣的話結果返回的順序應該也是亂的,但promise.all內部不曉得做了啥處理,讓返回結果的排序又正常了。不曉得我的理解對不對。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 654 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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