简体   繁体   English

为什么我的决心不等待指定的时间?

[英]Why my resolve doesn't wait for the specified time?

I am trying to call the resolve after 10 seconds but I guess it is called directly. 我试图在10秒后调用解决方法,但我想它直接被调用。

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

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

You're passing the return result of resolve() to setTimeout. 您正在将resolve()的返回结果传递给setTimeout。 You are not passing resolve() to setTimeout. 您没有将resolve()传递给setTimeout。

Remember basic programming in any programmig language (php, javascript, C, java etc.): 记住使用任何programmig语言(php,javascript,C,java等)进行的基本编程:

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

So the correct way to pass resolve() to setTimeout is: 因此,将resolve()传递给setTimeout的正确方法是:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM