約束ってどういう意味ですか?

(*-*)浩
リリース: 2019-06-18 11:08:07
オリジナル
22182 人が閲覧しました

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート