Promise.allSettled()
Promise.allSettled() は渡された Promise がすべて確定するまで待ち、各 Promise の結果を { status, value/reason } オブジェクト의配列で返します。Promise.all と異なり、一部が reject されても全体が失敗しません。
概要
Promise.allSettled() は渡された Promise がすべて確定するまで待ち、各 Promise の結果を { status, value/reason } オブジェクト의配列で返します。Promise.all と異なり、一部が reject されても全体が失敗しません。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 76 | 79 | 71 | 13 | 76 | 13 | |
基本構文
JAVASCRIPT
const results = await Promise.allSettled([
fetch('/api/users'),
fetch('/api/posts'),
fetch('/api/comments'),
]);
const successful = results
.filter(r => r.status === 'fulfilled')
.map(r => r.value);
const failed = results
.filter(r => r.status === 'rejected')
.map(r => r.reason); ライブデモ
Successde-ta. only. Extract
onepart that error to also, read in de-taonly in processing continue rowexample..
プレビュー全画面表示
実務での使いどころ
-
Promise.allSettled() の活用
すべての Promise が確定(fulfilled または rejected)するまで待つメソッド。部分的な成功を許容する場合に有効。
注意点
- 特になし。すべての主要ブラウザで安定して動作する。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。
参考リンク
Powered by web-features