第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

在完成所有異步回調(diào)之后,每個回調(diào)都完成了

在完成所有異步回調(diào)之后,每個回調(diào)都完成了

湖上湖 2019-07-12 16:56:44
在完成所有異步回調(diào)之后,每個回調(diào)都完成了顧名思義。我該怎么做?我想打電話whenAllDone()在執(zhí)行forEach-循環(huán)之后,對每個元素進行了遍歷,并進行了一些異步處理。[1, 2, 3].forEach(   function(item, index, array, done) {      asyncFunction(item, function itemDone() {        console.log(item + " done");        done();      });   }, function allDone() {      console.log("All done");      whenAllDone();   });能讓它像這樣工作嗎?當(dāng)用于Each的第二個參數(shù)是回調(diào)函數(shù)時,它會在所有迭代過程中運行嗎?預(yù)期產(chǎn)出:3 done1 done2 doneAll done!
查看完整描述

3 回答

?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

如果遇到異步函數(shù),并且希望在執(zhí)行代碼之前確保它完成任務(wù),那么我們始終可以使用回調(diào)功能。

例如:

var ctr = 0;posts.forEach(function(element, index, array){
    asynchronous(function(data){
         ctr++; 
         if (ctr === array.length) {
             functionAfterForEach();
         }
    })});

注:functionAfterForEach是在Foreach任務(wù)完成后要執(zhí)行的函數(shù)。asynchronous在foreach中執(zhí)行的異步函數(shù)。


查看完整回答
反對 回復(fù) 2019-07-12
?
當(dāng)年話下

TA貢獻1890條經(jīng)驗 獲得超9個贊

奇怪的是,給出了多少錯誤的答案異步凱斯!可以簡單地顯示,檢查索引沒有提供預(yù)期的行為:

// INCORRECTvar list = [4000, 2000];list.forEach(function(l, index) {
    console.log(l + ' started ...');
    setTimeout(function() {
        console.log(index + ': ' + l);
    }, l);});

產(chǎn)出:

4000 started2000 started1: 20000: 4000

如果我們檢查一下index === array.length - 1,將在完成第一次迭代時調(diào)用回調(diào),而第一個元素仍未完成!

要解決這個問題,而不需要使用外部庫(例如異步),我認(rèn)為最好的方法是在每次迭代之后節(jié)省列表長度和減少。因為只有一條線,所以我們確信沒有比賽條件的可能。

var list = [4000, 2000];var counter = list.length;list.forEach(function(l, index) {
    console.log(l + ' started ...');
    setTimeout(function() {
        console.log(index + ': ' + l);
        counter -= 1;
        if ( counter === 0)
            // call your callback here
    }, l);});


查看完整回答
反對 回復(fù) 2019-07-12
  • 3 回答
  • 0 關(guān)注
  • 639 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號