{...})" です。非同期操作のステータスを保持し、使用されます。非同期操作の異なる結果を表します。"/> {...})" です。非同期操作のステータスを保持し、使用されます。非同期操作の異なる結果を表します。">

ホームページ >ウェブフロントエンド >フロントエンドQ&A >ES6 での Promise の用途は何ですか

ES6 での Promise の用途は何ですか

WBOY
WBOYオリジナル
2022-03-30 16:23:122318ブラウズ

es6 では、Promise は Promise オブジェクトの作成と非同期操作の実行に使用されます。構文は "const Promise = new Promise((resolve,reject)=>{...})" であり、非同期を保持します。操作のステータスは、非同期操作のさまざまな結果を表すために使用されます。

ES6 での Promise の用途は何ですか

このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。

ES6 での Promise の用途は何ですか

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。