Javascript 为什么设置超时';s回调参数可以接受参数
在nodejs中,为什么我们可以将参数传递给setTimeout的回调函数。Javascript 为什么设置超时';s回调参数可以接受参数,javascript,node.js,Javascript,Node.js,在nodejs中,为什么我们可以将参数传递给setTimeout的回调函数。 我知道,process.nextTick()作为aspected崩溃,因为它将未定义的值作为函数。 但是,setTimeout()有什么神奇之处呢 通过使用: setTimeout(foo('hello'), 0); 您正在执行foo,并将结果(undefined)传递给setTimeout 这意味着,确切的时刻setTimeout(foo('hello'),0)运行时,将记录“hello”,但不是因为超时已结束 这
我知道,
process.nextTick()
作为aspected崩溃,因为它将未定义的值作为函数。但是,
setTimeout()
有什么神奇之处呢
通过使用:
setTimeout(foo('hello'), 0);
您正在执行foo
,并将结果(undefined
)传递给setTimeout
这意味着,确切的时刻
setTimeout(foo('hello'),0)代码>运行时,将记录“hello”
,但不是因为超时已结束
这是您的代码,但有10秒的延迟。请注意,代码是如何立即发出警报的,而不是在10秒后发出警报的:
foo=函数(a){
警报(a);
}
setTimeout(foo('hello'),10000)我想你误解我了。您在节点中尝试过我的代码吗setTimeout(foo('hello'),0)
工作正常,它将打印出hello
@bpceee:我对答案添加了一些额外的解释。感谢您快速准确的回复。似乎是过程。nextTick
不要检查它的参数是否是函数。@bpceee:的确,似乎是这样。不客气!感谢您接受这个答案:-)
setTimeout(foo('hello'), 0);