js はシングルスレッドであり、Promise ソリューションは非同期プログラミングのアイデアであり、従来のコールバック関数やイベントよりもはるかに強力です。 Promise は、非同期操作の結果のプレースホルダーに相当します。イベントをサブスクライブしたり、コールバック関数をターゲット関数に渡したりすることはありません。代わりに、関数は Promise (順序番号に相当) を返します。
Promise: 英語のプロミスの意味。Promise オブジェクトは、将来終了するイベント (通常は非同期操作) の結果を保存します。
Promise には 3 つの状態があります: (推奨学習: Javascript ビデオ チュートリアル )
pendding,rejected,resolved
Promise オブジェクトの状態を切り替える方法は 2 つだけです。
pendding->rejected,pendding->resolved
基本的な使用法:
new Promise((resolved,rejected)=>{})
Promise オブジェクトの解決された関数と拒否された関数。非同期イベント状態の pending->resolved コールバックが成功すると、解決された関数が呼び出されます。非同期操作が失敗した場合、拒否された関数が呼び出されます。
Promise の then(resolved,rejected) 関数パラメーターには、解決された関数と拒否された関数の 2 つのパラメーターがあります。
Promise の catch(): then 関数パラメータで拒否されたものと同じ関数を持つ、Promise エラー関数をキャプチャします。エラーを処理します。Promise によってスローされたエラーは泡立つ性質があるため、継続的に渡すことができ、は catch に渡されるため、すべてのエラー処理を catch に配置し、成功したエラーのみが catch で処理されることをお勧めします。
Promise の優れた機能の 1 つは、チェーンで呼び出すことができ、then と catch で Promise オブジェクトを返すことができることです。
Promise.all([promise1,promise2]): パラメータは、Promise オブジェクトの配列です。すべての Promise オブジェクトのステータスが解決されると、オブジェクトのステータスも解決され、その後呼び出されます。 Promise オブジェクトが拒否された場合、オブジェクトのステータスは拒否され、キャッチが実行されます。
Promise.race([promise1,promise2]): レーシング関数。Promise オブジェクトの状態が変化すると、オブジェクトは同じ状態を採用し、対応する関数を実行します。
Promise のライフ サイクル
各 Promise は短いライフ サイクルを経て、最初は保留状態になります。これは、非同期操作がまだ終了していないことを意味します。保留中の Promise も未解決とみなされます。非同期操作が終了すると、Promise は解決されたとみなされ、次の 2 つの状態のいずれかになります:
1. 完了: Promise の非同期操作は成功しました End;
2.拒否: Promise の非同期操作は正常に終了しませんでした。エラーか、他の理由が原因である可能性があります。
状態が変化すると「固定化」され、その状態が維持され、再び変化することはありません。状態が変化すると、promise.then にバインドされた関数が呼び出されます。注: Promise が作成されると、「すぐに実行」され、キャンセルすることはできません。これも欠点の 1 つです。
JavaScript に関連する技術的な記事については、js チュートリアル 列にアクセスして学習してください。
以上が約束ってどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。