es6 の Promise の詳細な紹介
Promise
Promise は、非同期操作メッセージを取得できるオブジェクトです。
特徴: オブジェクトの状態は、外部の世界 (進行中の保留中、解決済みの完了、拒否された失敗) の影響を受けません。非同期操作の結果 現在の状態を判断できます。一度状態が変化すると、再度変化することはありません (保留中から解決済み、保留中から拒否までのみ)。途中でキャンセルされる; コールバック関数がない場合、内部でスローされます。保留中の場合、エラーは外部に反映されません。現在の進行状況を知ることはできません。 then メソッドの Reject 状態のコールバック関数 (つまり then の 2 番目のパラメーター) ですが、このメソッドは前の then でエラーをキャプチャでき、同期書き込み (try/catch) に近いため、catch メソッドを使用します。このメソッドは Promise オブジェクトを返すため、 then メソッドを後で呼び出すことができます。 catch メソッドの中では、エラーもスローされることがあります。 Promise.all メソッドは、複数の Promise インスタンスを新しい Promise インスタンスにパッケージ化するために使用されます。 Promise.all メソッドは配列であってはなりませんが、Iterator インターフェイスを持つ必要があります。また、返される各メンバーは Promise インスタンスです。p1 p2 p3 ステータスが満たされる場合にのみ、p ステータスが満たされます。拒否された場合、 p は拒否されます。
Promise.race も複数になります。 Promise インスタンスは、オブジェクトの状態が変化する限り、それに応じて p の状態も変化します。最初に変更されたオブジェクトが返され、p のコールバック関数に渡されます。
Promise.resolve はオブジェクトを Promise オブジェクトに変換し、ステータスは解決されます
-
// 将thenable对象转为Promise对象var thenable = { then(resolve, reject) { resolve(200) } }var p = Promise.resolve(thenable) p.then((data) => { console.log(data) }) // 200
ログイン後にコピーPromise.reject は Promise オブジェクトを返します、インスタンスのステータスは拒否されます。このメソッドのパラメータは拒否の理由として変更されず、後続のメソッドのパラメータになります。
- 2 つの追加メソッド
-
// donePromise.prototype.done = function(onFulfilled, onRejected) {this.then(onFulfilled, onRejected) .catch(function(reason) { setTimeout(() => {throw reason}, 0) }); };// finallyPromise.prototype.finally = function (callback) { let P = this.constructor;return this.then( value => P.resolve(callback()).then(() => value), reason => P.resolve(callback()).then(() => { throw reason }) ); };
ログイン後にコピーdone は、いつでも発生する可能性のあるエラーをキャッチし、グローバルにスローするために使用されます。 - finally は、共通のコールバックを受け入れて、Promise オブジェクトの状態に関係なく操作を実行するために使用されます。パラメータとしての関数 (実行する必要があります)
以上がes6 の Promise の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









日常生活では、約束と履行の間で問題に遭遇することがよくあります。個人的な関係でもビジネス取引でも、約束を守ることが信頼を築く鍵となります。ただし、コミットメントの是非についてはしばしば議論の余地があります。この記事では、約束の長所と短所を検討し、約束を守る方法についていくつかのアドバイスを提供します。約束されたメリットは明らかです。まず、コミットメントは信頼を築きます。人が約束を守るとき、その人は信頼できる人であると他人に信じ込ませます。信頼は人々の間に確立される絆であり、それは人々をより良くすることができます

Vue は人気のあるフロントエンド フレームワークであり、アプリケーションを開発するときにさまざまなエラーや問題に遭遇することがよくあります。このうち、Uncaught(inpromise)TypeError は一般的なエラー タイプです。この記事では、その原因と解決策について説明します。 Uncaught(inpromise)TypeError とは何ですか? Uncaught(inpromise)TypeError エラーは通常、次の場所に表示されます。

Promise.resolve() の詳細な説明には、特定のコード例が必要です。Promise は、非同期操作を処理するための JavaScript のメカニズムです。実際の開発では、順番に実行する必要があるいくつかの非同期タスクを処理する必要があることがよくあり、満たされた Promise オブジェクトを返すために Promise.resolve() メソッドが使用されます。 Promise.resolve() は Promise クラスの静的メソッドであり、

Promise オブジェクトを使用して通常の関数を Promise を返すように変更し、コールバック地獄の問題を解決します。 Promiseの成功・失敗呼び出しロジックを理解し、柔軟に調整できます。核となる知識を理解し、まずそれを使用し、ゆっくりと知識を統合して吸収します。

ブラウザの互換性: どのブラウザが Promise をサポートしていますか? Web アプリケーションの複雑さが増すにつれ、開発者は JavaScript での非同期プログラミングの問題を解決することに熱心になっています。以前は、開発者は非同期操作を処理するためにコールバック関数をよく使用していましたが、その結果、コードが複雑で保守が困難になりました。この問題を解決するために、ECMAScript6 では、非同期操作を処理するためのより直観的かつ柔軟な方法を提供する Promise を導入しました。 Promise は例外を処理するために使用されるメソッドです

Promise オブジェクトの状態は次のとおりです: 1. 保留中: 初期状態、成功でも失敗でもありません; 2. 完了: 操作が正常に完了したことを意味します; 3. 拒否: 操作が失敗したことを意味します。 Promise オブジェクトが完了すると、保留状態から履行または拒否された状態に変わり、再度変更することはできません。 Promise オブジェクトは、AJAX リクエストや時間指定操作などの非同期操作を処理するために JavaScript で広く使用されています。

利点: 非同期で非ブロッキングなので、メインスレッドをブロックしません。組み込みのエラー処理メカニズムが向上します。

Promise は、非同期操作を処理するためのプログラミング パターンです。これは、非同期操作の最終的な完了または失敗を表すオブジェクトです。これは、非同期操作へのコミットメントと見なすことができます。非同期コードをより適切に管理および編成できます。より読みやすく、保守しやすくなります。 Promise オブジェクトには、保留中、履行済み、拒否という 3 つの状態があります。 Promise の中心的な考え方は、非同期操作をコールバック関数から分離し、チェーン呼び出しを通じて非同期操作間の依存関係を表現することです。
