マンガでわかるJavaScriptのPromise

Xにポスト X@ruten 開発支援 開発/執筆依頼
公開:2024-11-15、更新:2024-11-15

第13話「Promiseのstaticメソッド」2 4~7ページ

マンガ

4
5
6
7:続く

コンテンツ紹介

この連載をまとめて 無料の電子書籍で読む PDF+コードをDLする
コンテンツを全て見る

テキスト原稿

# 4p 1) モフオ: 各Promiseの resolveで 戻した値は 配列として 受け取れる 2) 待ち処理1 結果1 待ち処理2 結果2 配列として 待ち処理3 結果3 受け取る 待ち処理4 結果4 待ち処理5 結果5 ----- 3) モフオ: 実際にコードで 書いてみよう reject2 の時に作った timerを 利用するよ 4) const array = [ timer(500, 'resolve'), timer(600, 'resolve'), timer(700, 'resolve'), timer(800, 'resolve') ]; Promise.all(array) .then(function(res) { console.log(res); }); 出力内容 ['500 解決', '600 解決', '700 解決', '800 解決'] 配列
# 5p 1) モフオ: 配列の要素が Promise ではない時は そのまま解決と みなして送られる 2) const array = [ 500, 600, 700, timer(800, 'resolve') ]; Promise.all(array) .then(function(res) { console.log(res); }); 出力内容 [500, 600, 700, '800 解決'] Promiseと 混ぜても 構わない ----- 3) ミア: 思ったより 分かりやすいわね 4) モフオ: よかった
# 6p 1) ミア: rejectを 使った時は どうなるの? 2) モフオ: 最初のrejectの タイミングで allを終えるんだ ----- 3) const array = [ timer(500, 'resolve'), timer(600, 'reject'), timer(700, 'resolve'), timer(800, 'reject') ]; Promise.all(array) .then( function(res) { }, function(res) { console.log(res); } ); 出力内容 600 拒否 600ミリ秒の方が 800ミリ秒より 先なので ここで終了 600 拒否 4) モフオ: 値の受け取り方は 通常のrejectと 同じだよ
# 7p 1) ミア: asyncや awaitと 組み合わせたら どうなるの? 2) モフオ: 書いてみるね awaitを付けずに 配列を作る点に注意してね 待つのはallの ところだから ----- 3) 全てresolveの時 (async function() { const array = [ timer(500, 'resolve'), timer(600, 'resolve'), timer(700, 'resolve') ]; const res = await Promise.all(array); console.log('res:', res); })(); 出力内容 res: ['500 解決', '600 解決', '700 解決'] awaitを付けず に配列を作る (Promiseの 配列を作る) 待つのは allのところ

トップページに戻る
Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2024 Cronus Crown (c)1997-2024 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について