Nodejs中使用Async進行流程控制
由於Node.js 是異步編程模型,在流程控制上很麻煩很複雜,幾個簡單的順序步驟就會寫出一堆回調嵌套,很頭疼。試了幾個庫都不能很好的解決這個問題,在同事Michael推薦了Async給我後順利的簡化了不少代碼!
- async https://github.com/caolan/async
- async 文檔 https://caolan.github.io/async/
用到的有async.parallel(tasks, callback)
,async.waterfall(tasks, callback)
,async.each(coll, iteratee, callback)
,async.map(coll, iteratee, callback)
。
官方文檔已經把用法說得很詳細了,此處不再贅述。
需要注意的是,每一個task function中都要有callback,如果有if之類的條件則每種情況場景中也必須有一個callback。