今回は重ための内容から入ります。眠くなる時 間帯に読まないようにしましょう。
時間の掛かる処理というものがあります。例えば、インターネット通信や、ファイルの読み込みといった類の処理です。これらの処理を一般的な方法で実装しようとすると、その処理を行う間、ユーザーからの入力が受けられない状態になってしまいます。これが俗に言う、「フリーズした」状態です。幸いなことに、JavaScript では、時間の掛かる処理の待ち時間を、他の処理のために充てることができるようになっています。これを非同期処理といいます。JavaScript における非同期処理は、コールバックを用いて処理されます。
setTimeout(() => {
document.write("Text 1");
}, 1000);
setTimeout 関数は、2 つの引数をとり、第 1 引数で指定された関数を、第 2 引数で指定された時間(ミリ秒)後に実行します。このように、システムによって処理の完了後に呼び出される関数を、コールバック関数と呼びます。
それでは、setTimeout 関数を用いて、1 秒毎に異なるメッセージを表示させることを考えてみましょう。すぐに思いつくのは、以下のようなコードです。
setTimeout(() => {
document.write("Text 1");
setTimeout(() => {
document.write("Text 2");
setTimeout(() => {
document.write("Text 3");
setTimeout(() => {
document.write("Text 4");
}, 1000);
}, 1000);
}, 1000);
}, 1000);