Node.jsでのプログラミングで問題としてよく挙げられるコールバック地獄。 ずっと、非同期コールバックがネストすることが問題なんだと思っていました。でも、そうじゃない。ネストすればクロージャが使える(内側の関数から外側の関数スコープにある変数を参照できる)という便利な側面があるし、ネストが深くなりすぎるのが嫌なら別の場所に定義した関数を引数として渡して簡単に回避できる。 問題の大部分は、非同期処理の待ち合わせ処理が面倒なことなんです。 試しに、「2つのファイルを同時に読んで別のファイルに書き出し、書き出した内容を読み込む」、という処理をPure nodeで書いてみるとこうなります。 var fs = require('fs'); var count = 0; var results = []; fs.readFile('path1', 'utf8', function(err, data