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

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

Promise 執行順序問題。

Promise 執行順序問題。

慕桂英546537 2018-12-27 22:15:26
我參考這個地址寫了一些Promise的demo,https://developers.google.com...當我學到到這個例子時,我寫了一個類似的demo:https://jsfiddle.net/weisiwu/...不過結果的執行順序和給出的例子不一樣,請問如何修改代碼才能達到同時發起多個請求,但是返回的結果仍然按順返回(不是Promise.all那種全部完成后才返回的,而是有完成的且該完成項前面的也都完成了就返回該項這種)?
查看完整描述

1 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

改成這樣就行了

var timeline = [

            function() {

              return new Promise(function(resolve, reject) {

                setTimeout(function() {

                  resolve('task5<br>');

                }, 1000);

              });

            },

            function() {

              return new Promise(function(resolve, reject) {

                setTimeout(function() {

                  resolve('task6<br>');

                }, 1500);

              });

            },

            function() {

              return new Promise(function(resolve, reject) {

                setTimeout(function() {

                  resolve('task7<br>');

                }, 2000);

              });

            },

            function() {

              return new Promise(function(resolve, reject) {

                setTimeout(function() {

                  resolve('task8<br>');

                }, 800);

              });

            }

          ];


          // 完成后立刻輸出結果,但是按照順序輸出

          timeline.map(function(val) {

            return val();

          }).reduce(function(init, req) {

            return init.then(function() {

              return req;

            }).then(function(result){

                document.writeln(result)

            })

          }, Promise.resolve());


查看完整回答
反對 回復 2019-01-13
  • 1 回答
  • 0 關注
  • 653 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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