😊

Javascriptのpromiseについてのメモ

2022/07/03に公開
  • 同期処理と非同期処理

    • 同期処理は順序通りに処理
    • 非同期処理は実行順が書いた通りにならない
  • コールバック関数

    • callback = 呼び戻し・電話の掛け直し
    • 作業完了後の処理を書く関数のこと
  • コールバック関数とネスト

    • ネスト = 入れ子
    • コールバック関数を「待ち時間のある処理」の「終了時に呼び戻す目的」で使うとするとめちゃくちゃ読みにくい構造になる
    • それを解消するのがPromise
  • Promiseとthenとresolve

    • Promiseは非同期処理を同期処理っぽく書けるもの
      • 非同期処理を入れ子ではなく縦に順番に書くことができる
    • 書き方
      1.Promiseオブジェクトを作る
    new Promise(
    	時間のかかる処理A
    	)
    

    1.Promiseオブジェクトのthenを使う

    Promiseオブジェクト.then(
    	処理Aが終わったあとの処理
    	)
    

    ※thenはPromiseオブジェクトを返すので数珠繋ぎにできる

    Promiseオブジェクト.then(
    	処理
    ).then(
    	処理
    ).then(
    	処理
    )
    
    • 基本的にthenに登録した関数を順に実行していく
      • returnでPromiseを返すと、登録した処理の終了後に次のthenで登録した関数を実行す
      • returnでPromiseを返さない場合はすぐに次のthenで登録した関数を実行する
    • resolveを使うと処理の終了を知らせられる
    • resolveの引数
      • Promiseのresolveには引数を書ける
  • reject

    • resolveと対になる
    • Promiseのコールバックの引数で失敗した時に使う

Discussion