⛓️
Promise内部 — then()がMicrotask Queueに入る過程
Promiseの3つの状態とthenableチェーンの実行メカニズム
状態遷移
pending → fulfilled(resolve呼び出し)、pending → rejected(rejectまたはthrow)。一度遷移したら不変。
thenは新しいPromiseを返す
各.then()が新Promiseを返すためチェーン可能。各コールバックは前のPromiseがfulfillされた時にMicrotask Queueに入る。
async/awaitとの関係
awaitはPromise.then()のシンタクティックシュガー。await後のコードはthen()コールバックに変換。内部的にgenerator + Promise組み合わせで実装。
キーポイント
1
new Promise(executor)のexecutorは同期的に即座実行される
2
resolve()呼び出し→pending→fulfilled遷移(一度だけ、不変)
3
then()に登録されたコールバックがMicrotask Queueに入る
4
async/awaitはPromise + generatorのシンタクティックシュガー
ユースケース
API呼び出しチェーン — fetch().then().then().catch()パターン理解
Promise.all/race/allSettled — 並列非同期制御