点数
76点
感想
JavaScriptのPromiseについてとてもわかりやすく説明されていた。
漫画でプログラミングを解説することは難しいと思うが、それを実現している著者は素晴らしいと思う。
Promoseオブジェクトのthenメソッド
Promiseオブジェクトをreturnする場合
処理が終わるのを待って次のthen()またはcatch()に進む。
new Promise(resolve => resolve())
. then(()=>new Promise(resolve => setTimeout(resolve, 1000)))
. then(()=>console.log('hoge1'))
Promiseオブジェクトをreturnしない場合
すぐに次のthen()またはcatch()に進む。
new Promise((resolve) => resolve())
. then(()=>console.log('hoge1'))
. then(()=>console.log('hoge2'))
Promiseのクラスメソッド
Promise.all()
Promise.all()は引数でPromiseオブジェクト配列を受け取り、全てのPromiseが解決(fulfilled)するまで待つ。
Promise.all([
new Promise(resolve => {console.log(1); resolve()}),
new Promise(resolve => {console.log(2); resolve()}),
])
.then(console.log('all finished!'))
クラスメソッドの違い・比較
- Promise.all()は最初に結果がrejectedになったPromiseがあった場合、そこで終了する。
- Promise.allSettled()は全てのPromiseが完了(fulfilledまたはrejected)するまで待つ。
- Promise.any()は最初に結果がfulfilledになったPromiseがあった場合、そこで終了する。
- Promise.rase()は最初に結果がfulfilledまたはrejectedになったPromiseがあった場合、そこで終了する。