Open5
イベントループとプロミスチェーンで学ぶJavaScriptの非同期処理
非同期処理で上手くいかなかったので、この機会に何となく理解を脱する。1400いいねという脅威の評価を得ている以下の本で学習。
事前準備
事前準備としてまず動画を見てほしいという話があったので、動画を見た。
どのようにタスクが処理されていくかのイメージが掴めたので良かった▽
JavaScriptが実行される環境とECMAScriptの関係
環境というのはJavaScriptが実行される環境のこと。以下のようにブラウザとランタイムで別れる。
- ブラウザ環境 : Chrome, Safari, Firefox など
- ランタイム環境 : Node, Deno など
そして、環境に埋め込まれたJavaScript エンジンがECMAScript という仕様を実装していると。ブラウザのV8エンジンとNodeやDenoにも利用されていると。通りで一緒の機能が使えるわけだ。
APIは環境が提供するもの
fetchやsetTimeoutやら。これらは環境が独自に定義する。以下はこの本でかなり重要な箇所のうちの一つだ。
重要なので再確認しますが、API というのは 環境に特有の機能 であり、ECMAScript の一部ではありません。
ブラウザAPIとランタイムAPIの互換性
そもそもブラウザの方が歴史は古いため、ランタイムのAPIなどはブラウザ側のAPIから輸入しているわけ。
それらの互換性は結構あるらしく、なぜかというと、サーバーサイドもクライアントと同じように書けるようにするのがモチベーションの一つだから。
ただ、fetchやsetTimeoutなどブラウザと微妙に異なるため全く同じだと思わないこと。