es6 では、Promise は Promise オブジェクトの作成と非同期操作の実行に使用されます。構文は "const Promise = new Promise((resolve,reject)=>{...})" であり、非同期を保持します。操作のステータスは、非同期操作のさまざまな結果を表すために使用されます。
このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。
Promise は ES6 で提供される非同期プログラミング ソリューションです。Promise 自体はコンストラクターです
typeof Promise // function
通常、New Promise() を開発しています。コンストラクターを呼び出して新しい Promise オブジェクトを作成するために使用されます
非同期操作用の Promise オブジェクトを作成する
Promise もコンストラクターであり、新しいキーワードを使用する必要があります。作成時に関数を受け入れるインスタンスを作成します。この関数には 2 つの関数型パラメーターがあります:
resolve
reject
Promise を作成する操作は次のようになります:
const promise = new Promise((resolve,reject)=>{...})
solve と拒否の 2 つの関数パラメーターによって、現在の Promise のステータス変更と非同期操作の結果の処理方法が決まります。どちらも、非同期操作の結果を渡すことができます。
1. オブジェクトの状態は外界の影響を受けません。
Promise オブジェクトは、保留 (進行中)、履行 (成功)、および拒否 (失敗) の 3 つの状態を持つ非同期操作です。
非同期操作の結果のみが Promise の状態を決定でき、他の操作はこの状態を変更できません
2. Promise の状態が変更されると、何も変更されません。さらに変更が加えられ、この結果はいつでも取得できます。
Promise オブジェクトの状態が変化する可能性は 2 つだけです。保留中から実行済みへ、または保留中から拒否へです。この 2 つの状況が発生する限り、ステータスは変化せず、常にこの結果が維持されます。これを解決済みと呼びます。変更がすでに行われている場合は、Promise オブジェクトにコールバック関数を追加すると、結果がすぐに得られます。これはイベントとは異なります。イベントの特徴は、聞き逃してもう一度聞いても結果が得られないことです。
Promise を使用する利点は、非同期プログラムを処理するときに、非同期操作が行われることです。 Promise は、キューに登録され、予期された順序で実行され、予期された結果を返すため、複数の非同期操作であってもチェーン呼び出しに便利に使用できます
3. Promise にはいくつかの欠点もあります。
まず、Promiseはキャンセルできません、一度作成するとすぐに実行され、途中でキャンセルすることはできません。次に、コールバック関数を設定しない場合、Promise によって内部的にスローされたエラーは外部には反映されません。第三に、保留状態の場合、現在の進行状況がどの段階にあるのか (開始したばかりか、完了間近か) を知ることはできません。
いわゆる Promise は、単にコンテナであり、その中に何かが入っています。将来まで終了しない イベント (通常は非同期操作) の結果。
ES6 では、Promise オブジェクトが Promise インスタンスの生成に使用されるコンストラクターであると規定されています。
次のコードは Promise インスタンスを作成します。
const promise = new Promise(function(resolve, reject) { // ... some code if (/* 异步操作成功 */){ resolve(value); } else { reject(error); } });
Promise コンストラクターは関数をパラメーターとして受け取ります。関数の 2 つのパラメーターは、resolve と拒否です。これらは JavaScript エンジンによって提供される 2 つの関数であり、自分でデプロイする必要はありません。
resolve 関数の機能は、Promise オブジェクトのステータスを「未完了」から「成功」(つまり、保留中から解決済み) に変更することです。非同期操作が成功したときに呼び出されます。非同期操作の結果はパラメーターとして渡されます。reject 関数の機能は、Promise オブジェクトの状態を「未完了」から「失敗」(つまり、保留中から拒否された) に変更することであり、呼び出されます。非同期操作が失敗し、非同期操作によって報告されたエラーが である場合、パラメーターとして渡されます。
Promise インスタンスが生成された後、 then メソッドを使用して、解決された状態と拒否された状態のそれぞれに対するコールバック関数を指定できます。
promise.then(function(value) { // success }, function(error) { // failure });
then メソッドは 2 つのコールバック関数をパラメータとして受け入れることができます。最初のコールバック関数は、Promise オブジェクトの状態が解決されたときに呼び出され、2 番目のコールバック関数は、Promise オブジェクトの状態が拒否されたときに呼び出されます。このうち、2番目の機能はオプションであり、設ける必要はない。どちらの関数も、Promise オブジェクトによって渡された値をパラメーターとして受け入れます。
【関連する推奨事項: JavaScript ビデオ チュートリアル 、Web フロントエンド ]
以上がES6 での Promise の用途は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。