ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript における Promise チェーンとは何ですか?

JavaScript における Promise チェーンとは何ですか?

王林
リリース: 2023-09-08 15:45:07
転載
819 人が閲覧しました

JavaScript 中的 Promise 链是什么?

このチュートリアルでは、JavaScript での Promise チェーンについて説明します。 Promise チェーンに目を向ける前に、まず Promise とは何かについて話しましょう

つまり、JavaScript はシングルスレッドであることがわかります。これは、以下に示すように、実行する関数が 1 つある呼び出しスタックが 1 つしかないため、2 つの関数を同時に実行することはできないことを意味します。

1 つの関数の実行が完了すると、別の関数が実行を開始します。そのため、2 つ以上の関数を同時に実行するには、JavaScript の例で非同期プログラミングを使用します。コールバック関数と指定された時間を受け入れる setTimeout 関数です。 , その後、関数が実行されます。

リーリー

したがって、非同期操作には Promise を使用し、非同期操作の結果とその完了または失敗を返します。

実生活と同じように、私たちは約束をするのと同じ方法で仕事を完了することを約束し、それは 3 つの状態のいずれかで存在します。

    Pending
  • - これは初期状態を表し、完了も拒否もされていないことを意味します。
  • Fulfilled
  • - これは、割り当てた操作が正常に完了したことを意味します。
  • 拒否されました
  • - このステータスは、操作を実行できず、拒否されたことを意味します。
  • 非同期メソッドは値を返しますが、最終的な値を返すのではなく、将来関数に値を提供するという約束を返します。

Promise ステートメントの後に

Promise

を実行するには、then() メソッドを使用します。エラーにより拒否された場合は、catch ブロックを使用して処理されます。 JavaScript で Promise を宣言するにはどうすればよいですか?

リーリー

ここの Promise 内にはコールバック関数と呼ばれる関数があり、これには

resolve()

reject() という 2 つのメソッドとしてパラメータがあります。両方についての上記の説明。 つまり、ここでのsolveは、指定した関数の正常な完了を保証しますが、rejectは、指定された実行可能なコールバック関数の失敗した完了に対する責任を保証します。

例 1

Set を使用して文字列内の一意の文字を検索するプログラムを見てみましょう。

リーリー

上の内側。 then() メソッドはコールバック関数を渡し、value 変数は、resolve() メソッドからの結果を出力します。

プロミスチェーンとは何ですか?

プロミス チェーンは基本的に複数の非同期関数呼び出しであり、それらを同期的に次々に実行します。 then() メソッド。

例 2

例を通して詳しく理解してみましょう。

リーリー

プロミスチェーンがどのように機能するかを理解しましょう。

最初の最初の約束は果たされました。
  • 次に、
  • .then()
  • メソッドがそれを呼び出して、新しい Promise を作成し、解決します。
  • .then()
  • メソッドを再度呼び出すと、新しい Promise が作成され、これも解決されます。 繰り返しますが、これは機能しています。別の Promise ハンドラーを追加することもできます。
  • つまり、基本的に
.then()

メソッドは新しい Promise を返し、.then() を使用して next などを呼び出します。 例 3

リーリー

つまり、基本からプロミスチェーンに至るまで、それがどのように機能するかについての詳細なコンセプトがわかります。

以上がJavaScript における Promise チェーンとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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