async.forEach
非同期処理にはasync.jsを使ってて、大体async.series、async.parallelとかだけでやってたけど、forEachとかのループ中に非同期処理が入ってきたりすると面倒だなあと思ってた。
そういうときはasync.forEach、async.forEachSeriesを使えばよさげ。
var async = require('async'); async.forEach([1, 2, 3], function(val, cb) { setTimeout(function() { console.log(val); cb(); }, 1 / val * 1000); }, function() { console.log('fin'); }); // output // 3 // 2 // 1 // fin async.forEachSeries([1, 2, 3], function(val, cb) { setTimeout(function() { console.log(val); cb(); }, 1 / val * 1000); }, function() { console.log('fin'); }); // output // 1 // 2 // 3 // fin
という感じで使える。