Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Promise::Promise.withResolvers静的メソッドの使い方

Promise.withResolvers()静的メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Promise.withResolvers()メソッドは、JavaScriptにおける非同期処理の結果を表すPromiseオブジェクトと、そのPromiseの状態を制御するための関数をセットで生成、実行するメソッドです。

このメソッドは、新しいPromiseオブジェクトと、そのPromiseを成功状態(fulfilled)にするためのresolve関数、失敗状態(rejected)にするためのreject関数の3つをプロパティとして持つオブジェクトを返します。従来のnew Promise((resolve, reject) => { ... })という構文では、resolvereject関数はPromiseのコンストラクタ内部でのみ利用可能でした。

Promise.withResolvers()を利用することで、これらの制御関数をPromiseの生成元となる外部スコープで直接利用し、後からPromiseの状態を柔軟に制御することが可能になります。これにより、例えば、イベントリスナーのコールバック関数や別の非同期処理の完了時など、Promiseが作成された場所とは異なるタイミングや場所からPromiseを解決したり、拒否したりするシナリオで非常に役立ちます。非同期処理の設計において、Promiseの解決や拒否のタイミングをより柔軟に管理できる強力なツールです。このメソッドは、より簡潔で管理しやすい非同期コードの記述をサポートします。

公式リファレンス: Promise.withResolvers()

構文(syntax)

1const { promise, resolve, reject } = Promise.withResolvers();
2
3promise.then(value => {
4  console.log(value);
5});
6
7// 例として、Promiseを解決します
8resolve("処理が完了しました。");

引数(parameters)

引数なし

引数はありません

戻り値(return)

{ promise: Promise, resolve: Function, reject: Function }

Promise.withResolvers()は、新しいPromiseオブジェクトとそのPromiseを解決または拒否するためのresolve関数およびreject関数を、一つのオブジェクトとして返します。

関連コンテンツ