レッスンに戻る

promise での遅延

組み込み関数 setTimeout はコールバックを使用します。promise ベースで代替のものを作成してください。

関数 delay(ms) は promise を返す必要があります。その promise は ms ミリ秒後に解決され、そこへ .then を追加することができます。次のようになります:

function delay(ms) {
  // あなたのコード
}

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 からは何の値も返しません、ただ遅延を保証します。