非同期JavaScript
「後で終わらせます!」
実行中の関数他の関数が呼び出されます。
他の関数と並行して実行される関数は非同期と呼ばれます。
良い例はJavaScriptのsetTimeout()です。
非同期JavaScript
前の章で使用した例は、非常に単純化されています。
例の目的は、コールバック関数の構文を示すことでした。
例
上記の例では、myDisplayer
は関数の名前です。
myCalculator()
引数として渡されます。
現実の世界では、コールバックは非同期関数で最もよく使用されます。
典型的な例はJavaScriptのsetTimeout()
です。
タイムアウト待ち
JavaScript機能を使用する場合setTimeout()
タイムアウト時に実行されるコールバック関数を指定できます。
例
上記の例では、myFunction
がコールバックとして使用されます。
myFunction
にsetTimeout()
が引数として渡されます。
3000はタイムアウトまでのミリ秒数なので、myFunction()
が3秒後に呼び出されます。
ノート
関数を引数として渡すときは、括弧を使用しないでください。
右: setTimeout(myFunction, 3000);
間違い: setTimeout(myFunction(), 3000);
関数の名前を引数として別の関数に渡す代わりに、いつでも関数全体を渡すことができます。
例
function()
に{ myFunction("I love You !!!"); }
がコールバックとして使用されます。これは完全な関数です。完全な関数は setTimeout() に引数として渡されます。
3000はタイムアウトまでのミリ秒数なので、myFunction()
の3秒後に呼び出されます。
間隔を待つ
JavaScript関数を使用する場合setInterval()
は間隔ごとに実行するコールバック関数を指定できます。
例
上記の例では、myFunction
がコールバックとして使用されます。
myFunction
にsetInterval()
が引数としてに渡されます。
1000は間隔のミリ秒数なので、myFunction()
毎秒呼び出されます。
コールバックの代替手段
非同期プログラミングを使用すると、JavaScriptプログラムは実行時間の長いタスクを開始し、他のタスクを並行して実行し続けることができます。
ただし、非同期プログラムは作成が難しく、デバッグも困難です。
このため、最新の非同期JavaScriptメソッドのほとんどはコールバックを使用しません。代わりに、JavaScriptでは、Promise を使用して非同期プログラミングを解決します。
ノート
Promiseについては、このチュートリアルの次の章で学習します。プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。