回到课程

基于 promise 的延时

内建函数 setTimeout 使用了回调函数。请创建一个基于 promise 的替代方案。

函数 delay(ms) 应该返回一个 promise。这个 promise 应该在 ms 毫秒后被 resolve,所以我们可以向其中添加 .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 中返回任何值,只是确保延迟即可。