Help us understand the problem. What is going on with this article?

非同期のパターン(プロミスって??)

はじめに

非同期パターンのプロミスについて、自分なりにまとめてみることにしました。

プロミスとは

プロミスを簡単に説明するなら、「非同期処理の結果の値(失敗も含む)を表現するオブジェクト」です。

プロミスの動作

  1. 非同期処理をする、ある関数(Function A)があった時、このFunction Aを呼び出すとPromiseを返します。
  2. このPromiseは、非同期処理が完了(fulfilled) or 非同期処理が失敗(rejected)のどっちかが起きることは保証されています。
  3. このPromiseがfulfilled/rejectedが起きていない場合は、非同期処理が完了していない(pending)の状態となります。

プロミスの状態まとめ

つまり、プロミスは3つの状態があります。

  1. 非同期処理が完了(fulfilled)
  2. 非同期処理が失敗(rejected)
  3. 非同期処理が完了していない(pending)

プロミス使用パターン

Promise.then([ハンドラ関数A],[ハンドラ関数B])

・ パターンとして、成功の場合に呼び出す関数をハンドラ関数A、失敗したときに呼び出す関数をハンドラ関数Bを呼ぶようにすると、非同期処理が完了し、プロミスが成功した時はハンドラ関数Aが実行され、失敗したときはハンドラ関数Bが実行されます。

.then() は処理結果を受け取り、新しいプロミスオブジェクトを作成して戻り値として返却するメソッドです。

・ 図は、はじめのPromise Xが解決された後、ハンドラ関数の戻り値によりPromise Yが解決される流れをイメージしています。[結構この図、力作ですw]

Promise説明図.png

参考文献

Mozilla - Promise

yoshii0110
あくまで個人の見解なので、その点はご容赦下さい。
kddi
KDDIは、通信を中心に周辺ビジネスを拡大する「通信とライフデザインの融合」をより一層推進し、国内はもとよりグローバルにおいても、5G/IoT時代における新たな価値創造を実現し、お客さまの期待を超える新たな体験価値の提供を追求してまいります。
http://www.kddi.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away