async
async是一套Node.js中解決同步問題的好用工具,內容的使用功能有點像q或是node-promise。
套件資訊
Installation
npm install async
Sample Usage
下面是一個自寫一個測試function來做async的範例,範例中可以了解async.map中接入第一個參數為array,並且將array逐步傳入第二個參數的function(callback)中,最後async將結果彙整成兩個結果值回傳,第一個值為error,第二個為對應callback中的第二個參數彙整...
var async = require('async')
, request = require('request')
var Q = [
"http://www.google.com",
"http://micloud.tw",
"http://tw.yahoo.com"];
//測試function,傳入一個參數,一個function
function test(a,fn) {
//中間的log訊息與callback function接收無關,純Debug用
console.log(a);
//最終只有function內容會出現在result中
fn(null, 'xyz', a + '>>');
}
//同步的執行test function,在此會將Q內容循序傳入,並整合的接收結果到result
async.map(Q, test, function(e,result) {
if(e) console.log(e);
console.log(result);
});
如果實際上使用request module的話,可以這樣操作...
var async = require('async')
, request = require('request')
var Q = [
"http://www.google.com",
"http://micloud.tw",
"http://tw.yahoo.com"];
async.map(Q, request.get, function(e,result) {
if(e) console.log(e);
console.log(result);
});