Newly available 主要ブラウザの最新版で対応済み。古いブラウザが対象外なら使用可能。

概要

Promise.withResolvers() は新しい Promise とその resolve/reject 関数をオブジェクトで返します。コンストラクタのコールバック外から Promise を制御したい場合に便利です。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
119
119
121
17.4
119
17.4
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)

基本構文

JAVASCRIPT
const { promise, resolve, reject } = Promise.withResolvers();

// Resolve from an event handler
button.addEventListener('click', () => resolve('clicked'));
setTimeout(() => reject(new Error('timeout')), 5000);

const result = await promise;

ライブデモ

Promise.withResolvers

Promise 1 row in create. with part from resolve / reject.

プレビュー全画面表示

traditional. side notation and. comparison

Promise constrakta. middle in resolve getoutbetween that abbreviate.

プレビュー全画面表示

Usage with Eventmove.

buttonclickequal. partevent Promise ization.

プレビュー全画面表示

実務での使いどころ

  • Promise.withResolvers() の活用

    Promise と resolve/reject を同時に取得するメソッド。Promise の外部からの解決が容易に。

注意点

  • 古いブラウザ(IE等)では対応していない。対象ブラウザを確認すること。

アクセシビリティ

  • JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。

Powered by web-features