ブックマーク / zenn.dev/estra (5)

  • 非同期 API と環境|イベントループとプロミスチェーンで学ぶJavaScriptの非同期処理

    非同期 API と環境|イベントループとプロミスチェーンで学ぶJavaScriptの非同期処理
    yarumato
    yarumato 2024/02/11
    “async関数は関数内部にawait式がある時に限って「非同期」(前の事象の完了を待たずに起きる)となる。await式が内部に無ければ同期(前の処理の完了を待つ=blocking)。Promiseも後続のthen()がある場合に限って「非同期」”
  • イベントループとプロミスチェーンで学ぶJavaScriptの非同期処理

    JavaScript の非同期処理は非常に難しく、その難しさの原因は「制御の流れ」が掴みづらいことにあります。 このでは非同期処理を理解するために必要な概念であり、仕組みでもあるイベントループでプロミスチェーンの処理がどのように行われるかをクイズ形式で学ぶことによって、非同期処理の「制御の流れ」を掴めるように訓練します。 知識面については中枢となるイベントループの機構から、実行環境と API、async/await や Promise.all などの一通りの範囲を学習し、最終的には並列化や順序づけて反復処理を行うための制御方法と TypeScript での型注釈までを網羅します。

    イベントループとプロミスチェーンで学ぶJavaScriptの非同期処理
    yarumato
    yarumato 2023/08/05
    “Promiseの記事、毎回イベントループの話は意図して隠蔽している‥‥そのへんをちゃーんと書いてくれてるすごい記事”
  • Obsidian.Zenn

    次世代のノートテーキングツールである Obsidian を使って Zenn で記事やを作ろう!

    Obsidian.Zenn
    yarumato
    yarumato 2022/12/24
    “次世代のノート取りツールである Obsidian を使って Zenn で記事や本を作ろう”
  • V8エンジンによる内部変換コードでasync/awaitの挙動を理解する

    はじめに JavaScript の「非同期処理」ってやっぱりかなり難しくないですか? 自分も色々試行錯誤しましたが、結局「完全に理解した🤓」→「やっぱり何も分からん😭」っていうループの中で泥臭く理解を深めていくしかないようです。 さて、非同期処理の制御をある程度予測できるようになるには、非同期 API を提供する環境のことやイベントループ、マイクロタスクなどの仕組みについて理解する必要があります。 そして環境に埋め込まれた JavaScript Engine のことも理解する必要があります。 今回の記事では、JavaScript Engine の1つである V8 が内部で変換するコードから async/await の挙動を理解するための解説を試みたいと思います。V8 エンジンからアプローチすることで async/await の分かりづらい挙動を掌握して非同期処理を打倒します。 今回の記

    V8エンジンによる内部変換コードでasync/awaitの挙動を理解する
    yarumato
    yarumato 2022/05/10
    “async/awaitの前にPromiseを理解しておけ。非同期関数(asyncfunction)自体がPromiseインスタンスを返すのでPromiseチェーンができますし、await式自体も基本的にはPromiseインスタンスを評価して解決値を取り出す。”
  • JSの非同期処理を理解するために必要だった知識と学習ロードマップ

    はじめに JavaScript の非同期処理を学習してみて「ある程度自信を持って理解できたと言える」状態に到達したので、その感想とまとめの学習ロードマップとその中でどのような知識が必要になるかを紹介したいと思います。 あるいは、自分が実際に学習してきた道筋に基づいているのでショートカットとして参考にしてもらったり、使えるリソースなどの情報が共有できると思います。もしくは「JavaScript 初心者が非同期処理を理解できるようになるまでの道筋」というストーリーで1つのサンプルとして見ていただけるといいかもしれません。 ChangeLog 大きな変更のみをトラッキングしています。 2022-11-16 の内容を反映させた追記・修正を追加 2022-05-21 構成を修正 「V8 エンジンから考える」の項目を追加 2022-04-30 「イベントループの共通性質」の項目を追加 「ロードマップ

    JSの非同期処理を理解するために必要だった知識と学習ロードマップ
    yarumato
    yarumato 2022/04/13
    “そもそも同期と非同期という言葉に騙されそう。Promiseの概念が掴みづらくアンチパターンを学びようやく理解に到達。Promiseとかawaitとかって実は非同期処理ではない?‍という疑問解消がターニングポイント”
  • 1