13章非同期JavaScript
科学シミュレーションや機械学習のモデル構築など、コンピュータプログラムの中には計算量が非常に多いものもあります。このようなプログラムは、結果が計算されるまで、止まることなく、連続的に実行されます。しかし、実世界のコンピュータプログラムの多くは非同期的です。データが届くのを待ったり、あるイベントが発生するのを待ったりする間、計算処理を止めるのが普通です。Webブラウザ上のJavaScriptプログラムは、一般的にイベント駆動型です。ユーザが何かをクリックしたり、タップしたりするのを待ちます。また、JavaScriptベースのサーバは、ネットワークからクライアントのリクエストが届くのを待ちます。
このような非同期プログラミングは、JavaScriptでは当たり前のように行われているものです。この章では、非同期なコードを記述しやくするための、重要な3つの機能について解説します。Promiseは、まだ利用できない非同期処理の結果を表すオブジェクトです。このPromiseはES6で新たに追加されたものです。asyncとawaitという2つのキーワードはES2017で導入されました。この2つのキーワードを使うことで、非同期プログラミングが簡単になり、Promiseを使ったコードを同期的に記述できるようになります。ES2018では、非同期イテレータとfor/awaitループが追加されています。非同期イベントのストリームを処理するときに、単純なループを使えるようになり、同期的にプログラムを記述できます。
皮肉なことに、JavaScriptには非同期な処理を行うために強力な機能が備わっていますが、JavaScriptプログラム自身を非同期にするような機能はコア言語には含まれていません。このため、Promiseや ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access