1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
'use strict'; const p = console.log; const timeoutPromise = ({ ms, func, arg }) => { return new Promise((resolve, reject) => { if (20 === ms) { reject(`${ms}ミリ秒はエラーです!!`); } setTimeout(() => { resolve(func(arg)); }, ms); }).catch((a) => a); }; const createArg = ({ ms }) => ({ ms, func: () => `${ms}ミリ秒待ちました。` }); (async () => { /* promiseのcatchのコールバック関数の戻り値をawaitで受け取る */ p(await timeoutPromise(createArg({ ms: 21 }))); p(await timeoutPromise(createArg({ ms: 20 }))); p(await timeoutPromise(createArg({ ms: 19 }))); })(); |
1 2 3 |
21ミリ秒待ちました。 20ミリ秒はエラーです!! 19ミリ秒待ちました。 |