マンガでわかるJavaScriptのPromise

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

第7話「Promiseを使ったコード 2」2 4~7ページ

マンガ

4
5
6
7:続く

コンテンツ紹介

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

テキスト原稿

# 4p 1) モフオ: まず returnに直接 Promiseの部分を 書くね 2) Promiseオブジェクトを直接返す const timer = function(time, text) { return new Promise(function(resolve) { setTimeout(function() { console.log(text); resolve(); }, time); }); }; ----- 3) モフオ: 次に 関数の部分を アロー関数で 書くね 4) ミア: アロー関数って なに? ----- 5) モフオ: => 「 」記号で 短く書く関数だよ 少し説明するね
# 5p 1) アロー関数 基本 // 通常の関数 function(arg1, arg2) { 処理 return 戻り値 } ↓ ┃ ▼ // アロー関数 (arg1, arg2) => { 処理 return 戻り値 } function を消して => を加える 2) 引数が1つの場合 // 通常の関数 function(arg) { 処理 return 戻り値 } ↓ // アロー関数 arg => { 処理 return 戻り値 } 丸括弧を省ける ----- 3) 引数が0の場合 // 通常の関数 function() { 処理 return 戻り値 } ↓ // アロー関数 () => { 処理 return 戻り値 } 丸括弧のみ書く 4) 処理が1行の場合 // 通常の関数 function(arg1, arg2) { return 戻り値 } ↓ // アロー関数 (arg1, arg2) => 戻り値 { } と return を省ける
# 6p 1) モフオ: じゃあ少しずつ 書き換えるね 2) const timer = (time, text) => { return new Promise(function(resolve) { setTimeout(function() { console.log(text); resolve(); }, time); }); }; ----- ↓ 3) const timer = (time, text) => { return new Promise(resolve => { setTimeout(function() { console.log(text); resolve(); }, time); }); }; ↓ 4) const timer = (time, text) => { return new Promise(resolve => { setTimeout(() => { console.log(text); resolve(); }, time); }); }; ↓ ----- 5) const timer = (time, text) => new Promise(resolve => { setTimeout(() => { console.log(text); resolve(); }, time); }); 6) ミア: 短くは なったわね
# 7p 1) モフオ: この関数を利用して 前回の長いコードを 書き換えてみるよ 2) timer(500, '処理1') .then(function() { return timer(600, '処理2'); }) .then(function() { return timer(700, '処理3'); }) .then(function() { return timer(800, '処理4'); }) .then(function() { console.log('終了'); }); ----- 3) モフオ: さらに アロー関数で 短く書くよ 4) timer(500, '処理1') .then(() => timer(600, '処理2')) .then(() => timer(700, '処理3')) .then(() => timer(800, '処理4')) .then(() => console.log('終了')); ----- 5) ミア: えっ 同じ 処理なの? 6) モフオ: これは 極端な例だけど だいぶ短く なるよね

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