1. 程式人生 > >node async模組流程

node async模組流程

async.series    series函式 序列執行它的作用就是按照順序一次執行。series函式的第一個引數可以是一個數組也可以是一個JSON物件

 async.waterfall   waterfall和series函式有很多相似之處,都是按照順序執行。

不同之處是waterfall每個函式產生的值,都將傳給下一個函式,而series則沒有這個功能

 async.parallel    parallel函式是並行執行多個函式,每個函式都是立即執行,不需要等待其它函式先執行。

 async.parallelLimit   parallelLimit函式和parallel類似,但是它多了一個引數limit。

limit引數限制任務只能同時併發一定數量,而不是無限制併發

使用 async.eachLimit 方法實現

async.eachLimit 方法接受四個引數,第一個引數為原始資料陣列,第二個引數為每次並行處理的資料量,第三個引數為需要為資料進行的處理,第四個引數為回撥函式。使用 async.eachLimit 完成傳送郵件任務的思路是定義一個對資料進行處理的函式,然後使用 async.eachLimit 將處理函式應用所有資料上。

let userEmailList = [ '[email protected]', '[email protected]', ..., '

[email protected]' ];

let limit = 5;

let processer = function (email) {

    sendEmail(email, function (error) {

        return callback(error, result);

    });

}

async.eachLimit(userEmailList, limit, processer, function (error, result){

    console.log(error);

});