【JavaScript ECMAScript】Promise::Promise.withResolvers静的メソッドの使い方
Promise.withResolvers()静的メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Promise.withResolvers()メソッドは、JavaScriptにおける非同期処理の結果を表すPromiseオブジェクトと、そのPromiseの状態を制御するための関数をセットで生成、実行するメソッドです。
このメソッドは、新しいPromiseオブジェクトと、そのPromiseを成功状態(fulfilled)にするためのresolve関数、失敗状態(rejected)にするためのreject関数の3つをプロパティとして持つオブジェクトを返します。従来のnew Promise((resolve, reject) => { ... })という構文では、resolveとreject関数はPromiseのコンストラクタ内部でのみ利用可能でした。
Promise.withResolvers()を利用することで、これらの制御関数をPromiseの生成元となる外部スコープで直接利用し、後からPromiseの状態を柔軟に制御することが可能になります。これにより、例えば、イベントリスナーのコールバック関数や別の非同期処理の完了時など、Promiseが作成された場所とは異なるタイミングや場所からPromiseを解決したり、拒否したりするシナリオで非常に役立ちます。非同期処理の設計において、Promiseの解決や拒否のタイミングをより柔軟に管理できる強力なツールです。このメソッドは、より簡潔で管理しやすい非同期コードの記述をサポートします。
構文(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関数を、一つのオブジェクトとして返します。