公開:2024-11-15、更新:2024-11-15
第11話「reject 2」
今回は「reject」を使ったコード、その2です。
マンガ
コンテンツ紹介
テキスト原稿
# 1p
1)
ミア:
そういえば
asyncと
awaitで書く時の
rejectって
どうなるの?
[ミア]
2)
モフオ:
いい質問だね
その話をしようと
思っていたんだ
[モフオ]
-----
3)
モフオ:
例外処理の
try
catch文を
利用するよ
説明のために
少し改造した
timerの
コードを示すよ
----
4)
const timer = (time, type) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (type === 'resolve') {
resolve(`${time} 解決`);
}
if (type === 'reject') {
reject(`${time} 拒否`);
}
}, time);
});
};
今後は
このtimerを
利用するよ
typeが'resolve'ならresolve()を実行
'reject' ならreject() を実行
# 2p
1)
モフオ:
次に この
timerを
使った処理を
書くよ
600のところで
rejectが
実行されて
catchに
制御が移るんだ
-----
2)
その場で実行するために、関数を丸括弧で囲い…
( async function() {
try {
const res1 = await timer(500, 'resolve');
console.log(res1);
const res2 = await timer(600, 'reject');
console.log(res2);
const res3 = await timer(700, 'resolve');
console.log(res3);
} catch(e) {
console.log(e);
}
console.log('終了');
} ) ();
そのあとに、実行のための丸括弧を書く
(こうした実行方法を「即時実行」という)
-----
3)
出力内容
500 解決
600 拒否
終了
4)
ミア:
thenを
使うより
よさそうね