なぜ約束を使用します
1.純粋なコールバック関数を使用します
最初のコールバック関数を指定し、非同期タスクを開始
コールバック関数を指定する。1. Aの方法は、より柔軟です
あなたは、中および後に、前のタスクを実行することができます
2.サポートチェーン呼び出し、問題を解決するためのコールバック地獄
コールバック関数が入れ子になって、コールバックの下位層に依存して、コールバック関数の1つの結果:地獄コールバックとは何ですか
ソリューション。約束チェーン
究極のソリューション非同期/のawait
非同期関数リクエスト(){ 試み{ CONST結果 = のawait dosongthing() CONST newResult = のawait doThirdThing(結果) CONST finalResult = のawait doThirdThing2(newResult) } キャッチ(エラー){ failureCallback(エラー) } }
どのように約束を使用するには?構文把握(API:前面および背面インターフェイス)
機能を考えると、それは、APIの定義です。それは文法であるため、
1.Promiseコンストラクタ:プロミス(excutor){}
excutor関数は:=> {}(拒否、解決)同期を実行します
解決機能:我々は、関数値を呼び出し、成功の内部定義=> {}
機能を拒否:我々は関数呼び出し内部失敗理由を定義=> {}
説明:excutor文が同期呼び出し直ちに約束を行います、非同期操作をアクチュエータで行います
2.Promise.prototype.then方法(onResolved、onRejected)=> {}
onResolved機能:成功したコールバック関数(値)=> {}
onRejected関数:不良コールバック関数(理由)=> {}
戻り値新しい約束のオブジェクトのための前提条件//チェーンの呼び出し
3.Promise.prototype.catch方法(onRejected)=> {}
onRejected関数:不良コールバック関数(理由)=> {}
相当次いで(ヌル、onRejected)=> {}
新しいプロミス((A、B)=> { たsetTimeout(() => { // ( 'OK') B( '失敗' ) }、 0 ) })。次に、( 値 => { にconsole.log( ' onResolved1' 、値) } )。キャッチ( 理由 => { にconsole.log( 'onReject' 、理由) } )
4.Promise.all方法(約束)=> {}
約束:n個を備えた約束配列
//約束オブジェクトを返します
3つの要求は成功した唯一のショーの成功です
5.Promise.race方法(約束)=> {}
約束:n個を備えた約束配列
最初の実行で最初の完全な表情