首页 > 解决方案 > 为什么我的决心不等待指定的时间?

问题描述

我试图在 10 秒后调用解析,但我想它是直接调用的。

let timer = (time) => new Promise((resolve)=> { setTimeout( resolve("success"),time)});

timer(10000).then( (result) => {
    alert(result)
})

标签: javascriptsettimeoutes6-promise

解决方案


您将返回结果传递resolve()给 setTimeout。您没有传递resolve()给 setTimeout。

记住任何编程语言(php、javascript、C、java 等)的基本编程:

foo(bar())
// is the same as
temp = bar()
foo(temp)

所以传递resolve()给 setTimeout 的正确方法是:

setTimeout(() => resolve("success"),time)

推荐阅读