【发布时间】:2020-01-10 01:22:40
【问题描述】:
我正在阅读一本关于 javascript 的书,其中有一段我不明白的代码。
setTimeout( () => setTimeout(console.log, 0 , value *2), 1000);
这里到底发生了什么?有两个setTimeout,我想我只了解内部的一个。我不明白 () => 函数在做什么?你能解释一下吗?
我确实关注:
setTimeout(console.log, 0 , value *2)
在 0 毫秒后将参数 'value*2' 传递给函数/方法 console.log()。我也明白 setTimeout() 返回 timeoutId。
我不知道其他的。
我看到与以下代码类似的内容:
let p1 = new Promise((resolve, reject) => resolve());
setTimeout(console.log, 0, p1); //Promise <resolved>
这个也不明白。
【问题讨论】:
-
这是一个箭头函数。所以,这是一个
setTimeout,它需要 1 秒来触发其中的箭头函数,它返回另一个setTimeout(因为没有{}),它在 0 毫秒过去后触发console.logvalue*2给它。 -
这是作业吗?我问是因为,除了教育解释之外,这是毫无意义的代码 - 没有理由这样做。您可以使用单个
setTimeout()获得相同的结果。 -
哦,我应该声明
setTimeout确实返回了timeoutID,但它会根据第二个参数的毫秒数触发传递给第一个参数的函数(异步)我>。所有其他参数都传递给您的函数参数。
标签: javascript promise settimeout