基于 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
中返回任何值,只是确保延迟即可。