async流程控制函數(shù)

asyncJavaScript的擴展庫。它可以簡化Node.js異步操作的書寫,使代碼更容易被讀懂,而不是嵌套一堆的括號讓人頭大。
我們可以使用Node.js的包管理器npm直接安裝它,在shell中輸入:

npm install async

這里主要說一下async的流程控制函數(shù)。

series函數(shù) 串行執(zhí)行

它的作用就是按照順序依次執(zhí)行。

async.series({
    one: function(callback){
        callback(null, 1);
    },
    two: function(callback){
        callback(null, 2); 
    }
  },function(err, results) { 
        console.log(results);
});

輸出:{one: 1, two: 2}

series函數(shù)的第一個參數(shù)可以是一個數(shù)組也可以是一個JSON對象,參數(shù)類型不同,影響的是返回數(shù)據(jù)的格式。

**waterfall函數(shù) **瀑布流

waterfall每個函數(shù)產(chǎn)生的值,都將傳給下一個函數(shù).

 waterfall 的 tasks 參數(shù)只能是數(shù)組類型。
當有函數(shù)出錯,其err直接傳給最后的callback,出錯函數(shù)的結(jié)果被舍棄,出錯函數(shù)后面的函數(shù)不再執(zhí)行。

parallel函數(shù) 并行執(zhí)行多個函數(shù)

parallel(tasks, [callback]),
每個函數(shù)都是立即執(zhí)行,不需要等待其它函數(shù)先執(zhí)行。傳給最終callback的數(shù)組中的數(shù)據(jù)按照tasks中聲明的順序,而不是執(zhí)行完成的順序。

tasks參數(shù)可以是一個數(shù)組或是json對象。
和series函數(shù)一樣,tasks參數(shù)類型不同,返回的results格式會不一樣。

parallelLimit函數(shù) 并行執(zhí)行有個數(shù)限制的函數(shù)

parallelLimit(tasks, limit, [callback])
limit參數(shù)限制任務(wù)只能同時并發(fā)一定數(shù)量,而不是無限制并發(fā)。

查看demo
https://github.com/seafruit/asyncStudy

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容