(1)約束の意味
要約:
より合理的かつより強力な- -コールバック関数とイベントの約束は、従来のソリューションよりもソリューション非同期プログラミングです。それが最初に提案し、コミュニティによって実装された、ES6プロミスオブジェクト内のネイティブ標準言語、統一用法、書き込むこと。
いわゆるはPromise
、それは単にイベントが将来的にいつか(通常は非同期操作)の結果を終了します保持するコンテナです。構文的には、約束がオブジェクトである、あなたはそれの非同期操作からメッセージを取得することができます。
統一されたAPIを提供することを約束は、非同期操作の様々な同じように扱うことができます。
特長:
約束オブジェクトは、以下の2つの特徴を有する: 1 、状態は外部の影響を受けません。 図2は、状態変化と、この結果を得ることができる任意の時点で、変更されません。限り、これら二つのものが凝固状態に起こるように、それは変更されることはありませんし、その結果を維持します、
そして、(確定)解決と呼ばれます。変更が発生した場合は、すぐにこの結果を得ることを約束するオブジェクトへのコールバック関数を追加します。
長所と短所:
利点は:プロミスオブジェクトと、プロセスは、深くネストされたコールバック関数を回避するために、発現同期動作に対して非同期動作であってもよいです。さらに、プロミスオブジェクトは、統一されたインタフェースを提供するので、非同期動作の制御容易こと。
欠点:約束はまた、いくつかの欠点があります。まず第一に、あなたは約束をキャンセルすることはできません新しい缶が途中でキャンセルされていないと、それが直ちに実行されます。あなたは、コールバック関数、内部の約束スローエラーを設定しない場合は第二に、それは外部には反応しません。
保留状態で、進捗が現在どこのステージ(完了を開始するか、近づい)を知る方法はありません第三に、。
文法(2)注意を払います
一般的には、その後、コールバックメソッドの状態を拒否する定義していない(そして、第二引数である)、常に使用することをお勧めキャッチする方法を。以下
2回目の書き込みが最初の書き込みよりも優れている、という理由で2回目の書き込みがエラー捕捉方法の前に行うことができ、より近い同期書き込み(試行/キャッチ)にあります。
したがって、我々は常にキャッチ方式を使用して、代わりに2番目のパラメータをメソッドを使用することをお勧めします。
(3)書面による勧告
一般的には常に推奨、プロミスオブジェクトが約束内部で発生するエラーを処理することができる方法、後ろにキャッチを保ちます。
この方法は、キャッチを返すまたはプロミスは、オブジェクトは、コールバックメソッドも続いてもよいです。
次のとおりです。
上記のコードを実行した後にcatch
メソッド指定されたコールバック関数を、その後の後ろに実行するthen
メソッド指定されたコールバック関数。エラーがない場合、それはスキップされますcatch
方法を。
(4)catch
の方法のうち、エラーをスローすることができ
(6)Promise.prototype.then()
(7)Promise.prototype.catch()
(8)Promise.prototype.finally()--- ES9あるES2018新機能
(9)Promise.all()
次のようにケースは以下のとおりです。
(10)Promise.race()---レース、競馬
次のようにケースは次のとおりです。ファイルサイズが3080キロバイトで、Bのファイルサイズは1キロバイトです
結果は次の通りです:BBBうちプリント、ファイルが大きすぎることから、遅い読書、Bの原稿読取状態を変更すぐに完了しています
(11)アプリケーション
。