使用 Promise 延迟
内置函数 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
返回任何值,只是确保延迟。