JavaScriptのasync/awaitを調べていたら、MDNにsleepを簡潔に書けそうな例があった。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Using_promises
試した環境はnode.js v10.13.0
async/awaitのいいところは、非同期処理の待ちと例外捕捉をコールバックを使わないで、直感的な記法で書けるところ。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Using_promises
sleepの簡潔な記法
async/awaitを使うと、こんな感じで非同期処理の待ちを簡潔に書ける。試した環境はnode.js v10.13.0
const wait = ms => new Promise(resolve => setTimeout(resolve, ms)); async function runAsync() { try { console.log('sleep...'); await wait(3000); // await Promise.reject('Error!'); console.log('woke up!'); } catch (e) { console.log(e); } return 'complete!'; } console.log('before'); runAsync().then((resolve) => { console.log(resolve); }) console.log('after');
before sleep... after (3秒経過) woke up! complete!
async/awaitのいいところは、非同期処理の待ちと例外捕捉をコールバックを使わないで、直感的な記法で書けるところ。
例外処理
7行目のPromise.rejectのコメントを外すと、非同期処理中のエラーを拾ってawaitが例外を送出してくれる。before sleep... after (3秒経過) Error! complete!
0 件のコメント:
コメントを投稿