プロミスによる遅延
組み込み関数setTimeout
はコールバックを使用しています。Promiseベースの代替を作成してください。
関数delay(ms)
はPromiseを返すようにします。このPromiseはms
ミリ秒後に解決されるようにする必要があります。こうすることで、以下のように.then
を追加できるようになります。
function delay(ms) {
// your code
}
delay(3000).then(() => alert('runs after 3 seconds'));
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
delay(3000).then(() => alert('runs after 3 seconds'));
このタスクではresolve
は引数なしで呼び出されます。delay
から値は返しません。遅延を確実に実行するだけです。