JavaScript の Promise は、非同期操作を処理するエレガントな方法を提供します。使用するライブラリによっては、Promise に関連する 2 つの異なる API、defer().promise と Promise が使用される場合があります。
レガシー API の defer() 関数Promise の状態 (解決または拒否) を表す遅延オブジェクトを作成し、それを手動で制御するメソッドを提供します。 Promise を解決するには、Promise の結果となる値を受け入れる replace() メソッドを呼び出します。 defer().promise によって返される Promise は、この遅延オブジェクトをカプセル化します。
Promise コンストラクターは Promise を直接作成し、リゾルバー関数とリジェクター関数を引数として指定できるようにします。これらの関数は、それぞれ Promise を実行または拒否するアクションを表します。
これら 2 つの API の主な違いは、スローの安全性にあります。 Promise コンストラクターはスローセーフです。つまり、実行関数 (リゾルバーまたはリジェクター) 内で例外がスローされた場合、Promise は代わりに拒否されます。
対照的に、従来の遅延 API はスローセーフではありません。 。遅延オブジェクトのメソッド (resolve() または raise()) 内で例外がスローされた場合、その例外は同期的に伝播され、予期しないエラーが発生する可能性があります。
改善されたため安全性と最新の構文をスローするため、Promise コンストラクターは、Promise を操作するための推奨 API です。これにより、エラー処理が簡素化され、一般的なプログラマーのエラーが防止されます。
以上がDefer().promise と Promise: JavaScript Promise API はどちらが安全ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。