async.waterfallで気をつけておくこと
JS学んでまだ日が浅いせいか、callbackの引数周りがよく混乱する。特に今日はasync.waterfallでcallbackの第1引数にはnull, 第2引数にidとかを設定しておいて、次の関数では第1引数でidを受け取っている感じになっていて、えええーーとなった。
第1引数がerrとして与えられる文化を覚えていかねば。。
async.waterfall([ function(callback) { console.log('1'); setTimeout(function() { console.log('1 done'); callback(null, 1); }, 100); }, function(arg1, callback) { // arg1 === 1 console.log('2'); setTimeout(function() { console.log('2 done'); callback(null, 1, 2); }, 50); }, function(arg1, arg2, callback) { // arg1 === 1, arg2 === 2 console.log('3'); setTimeout(function() { console.log('3 done'); callback(null, 1, 2, 3); }, 10); } ], function(err, arg1, arg2, arg3) { // arg1 === 1, arg2 === 2, arg3 === 3 if (err) { throw err; } console.log('all done.'); console.log(arg1, arg2, arg3); }); //出力結果 1 1 done 2 2 done 3 3 done all done 1 2 3