nodejsには、次のような高価な関数があります。
function expensiveCode(){
a.doExensiveOperation(1);
b.doAnotherExensiveOperation(2);
c.doADiffererentExensiveOperation(3);
d.doExensiveOperation(4);
}
各サブ関数呼び出しには異なるパラメーターがあるため、ループで実行することはできません。この高価な関数呼び出しを抑制して、次のようなnextTickで各サブ呼び出しが実行されるようにします。
function expensiveCode(){
process.nextTick(function(){
a.doExensiveOperation(1);
process.nextTick(function(){
b.doAnotherExensiveOperation(2);
process.nextTick(function(){
c.doADiffererentExensiveOperation(3);
process.nextTick(function(){
d.doExensiveOperation(4);
});
});
});
});
}
それは明らかに醜いです、そして、20行の異なる操作があるならば、考えることさえできないほど恐ろしいでしょう。
「async.js」のような多くのライブラリを確認しましたが、それらはすべて、呼び出された関数が非同期であること、つまり完了時にコールバック関数を持つことを期待しているようです。すべてのコードを「完了時のコールバック」メソッドに変換せずにそれを行う簡単な方法が必要です。これはやり過ぎのようです。