node.jsはnon-blocking処理を行うため、関数によってはプログラマの意図しない順番で処理が実行されることがあります。 次の例をみてください。プログラムの開始をconsole.logで出力後、ファイルを読み込んで内容を出力、 最後にプログラム終了をconsoke.logで出力しています。 //app.js var fs = require('fs'); console.log("start"); //ファイル読み込み fs.readFile("hello.txt","utf-8",function(err,data) { console.log(data); }); console.log("finish"); 上記プログラムを自分の環境で実行した結果は次のようになってます。 startとfinishが表示され、ファイル内容は最後に表示されています。環境によってはfinishよ
![node.jsのいろいろなモジュール17 – asyncで非同期処理のフロー制御 | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/5f39a75a8a84eb2455cb3bea6e9d7d1d9f2a122b/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2011%2F11%2Fnode-catch3.png)