es6 の Promise の詳細な紹介

Jun 26, 2017 pm 03:23 PM
promise

Promise

  1. Promise は、非同期操作メッセージを取得できるオブジェクトです。

  2. 特徴: オブジェクトの状態は、外部の世界 (進行中の保留中、解決済みの完了、拒否された失敗) の影響を受けません。非同期操作の結果 現在の状態を判断できます。一度状態が変化すると、再度変化することはありません (保留中から解決済み、保留中から拒否までのみ)。途中でキャンセルされる; コールバック関数がない場合、内部でスローされます。保留中の場合、エラーは外部に反映されません。現在の進行状況を知ることはできません。 then メソッドの Reject 状態のコールバック関数 (つまり then の 2 番目のパラメーター) ですが、このメソッドは前の then でエラーをキャプチャでき、同期書き込み (try/catch) に近いため、catch メソッドを使用します。このメソッドは Promise オブジェクトを返すため、 then メソッドを後で呼び出すことができます。 catch メソッドの中では、エラーもスローされることがあります。 Promise.all メソッドは、複数の Promise インスタンスを新しい Promise インスタンスにパッケージ化するために使用されます。 Promise.all メソッドは配列であってはなりませんが、Iterator インターフェイスを持つ必要があります。また、返される各メンバーは Promise インスタンスです。p1 p2 p3 ステータスが満たされる場合にのみ、p ステータスが満たされます。拒否された場合、 p は拒否されます。

  3. Promise.race も複数になります。 Promise インスタンスは、オブジェクトの状態が変化する限り、それに応じて p の状態も変化します。最初に変更されたオブジェクトが返され、p のコールバック関数に渡されます。

  4. Promise.resolve はオブジェクトを Promise オブジェクトに変換し、ステータスは解決されます

  5. // 将thenable对象转为Promise对象var thenable = {
        then(resolve, reject) {
            resolve(200)
        }
    }var p = Promise.resolve(thenable)
    
    p.then((data) => {
      console.log(data)
    })  // 200
    ログイン後にコピー

    Promise.reject は Promise オブジェクトを返します、インスタンスのステータスは拒否されます。このメソッドのパラメータは拒否の理由として変更されず、後続のメソッドのパラメータになります。
  6. 2 つの追加メソッド
  7. // 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 })
        );
    };
    ログイン後にコピー
  8. done は、いつでも発生する可能性のあるエラーをキャッチし、グローバルにスローするために使用されます。
  9. finally は、共通のコールバックを受け入れて、Promise オブジェクトの状態に関係なく操作を実行するために使用されます。パラメータとしての関数 (実行する必要があります)


以上がes6 の Promise の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

約束を守る: 約束を守ることの長所と短所 約束を守る: 約束を守ることの長所と短所 Feb 18, 2024 pm 08:06 PM

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

Vue アプリケーションで Uncaught (in Promise) TypeError が発生した場合はどうすればよいですか? Vue アプリケーションで Uncaught (in Promise) TypeError が発生した場合はどうすればよいですか? Jun 25, 2023 pm 06:39 PM

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

Promise.resolve() について詳しく見る Promise.resolve() について詳しく見る Feb 18, 2024 pm 07:13 PM

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

ES6 Promiseの原理と利用方法の分析例 ES6 Promiseの原理と利用方法の分析例 Aug 09, 2022 pm 03:49 PM

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

どのブラウザが Promise をサポートしていますか? どのブラウザが Promise をサポートしていますか? Feb 19, 2024 pm 04:41 PM

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

プロミスオブジェクトとは何ですか? プロミスオブジェクトとは何ですか? Nov 01, 2023 am 10:05 AM

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

PHP 関数が Promise オブジェクトを返す利点は何ですか? PHP 関数が Promise オブジェクトを返す利点は何ですか? Apr 19, 2024 pm 05:03 PM

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

約束ってどういう意味ですか? 約束ってどういう意味ですか? Nov 02, 2023 pm 05:30 PM

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

See all articles