1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
'use strict'; const p = console.log; const timeoutPromise = ({ms, callback, errMsg = null}) => { return new Promise((resolve, reject) => { if (errMsg) { reject(errMsg); } setTimeout(() => { const result = callback(); resolve(result); }, ms); }); }; const argsTimeoutPromise = (ms, errMsg = null) => { const callback = () => `${ms}ミリ秒待ちました`; return {ms, callback, errMsg}; }; timeoutPromise(argsTimeoutPromise(20)).then(p).catch(p); timeoutPromise(argsTimeoutPromise(15, '15ミリ秒はエラーです')).then(p).catch(p); timeoutPromise(argsTimeoutPromise(10)).then(p).catch(p); |
1 2 3 |
15ミリ秒はエラーです 10ミリ秒待ちました 20ミリ秒待ちました |