⛓️

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 — 並列非同期制御

参考資料