私はシステムに参加する(比較的)ノードの初心者であり、「コールバックを書くだけで、すべてが非同期でイベント駆動型です。心配しないでください!」というコミュニティのすべての熱意があります。単一のプログラム内の制御フロー (または、よりノード的な用語で言えば、より大きなプログラムで単一の要求を処理する際の制御フロー) に関して、私は少し混乱しました。
ノードの下で次のプログラムを実行している場合
var foo = function(){
console.log("Called Foo");
};
var bar = function(){
console.log("Called Bar");
};
var doTheThing = function(arg1, callback){
callback();
};
doTheThing(true, function() {
foo();
});
bar();
後に実行される可能性はありますか? コマンドラインからローカルでプログラムを実行すると、常にfoo
bar
Called Foo
Called Bar
しかし、意図的なエバンジェリストからの非常に多くの警告が、あなたが思うときにあなたのコールバックが呼び出されると仮定しないでくださいという行に沿って非常に多く見られます. js は、関数オブジェクトをパラメーターとして使用すると、奇妙な/特別なことを行います。