Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/480.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置超时时间为零秒_Javascript_Settimeout - Fatal编程技术网

Javascript 设置超时时间为零秒

Javascript 设置超时时间为零秒,javascript,settimeout,Javascript,Settimeout,这个问题与JavaScript中的setTimeout方法有关。零秒后在setTimeout内调用另一个函数有什么好处吗?这样, setTimeout(func, 0); 我之所以问这个问题,是因为我注意到某些插件/库中有类似的代码行(例如,swipejs中的DFN函数)。它是为了支持某种浏览器不兼容,还是仅仅是编写代码的糟糕方式,我应该完全忽略它?我想知道是否有某种好处。提前感谢您的时间。JavaScript是单线程的,因此一次只能做一件事。使用0ms timeout调用setTimeou

这个问题与JavaScript中的setTimeout方法有关。零秒后在setTimeout内调用另一个函数有什么好处吗?这样,

 setTimeout(func, 0);

我之所以问这个问题,是因为我注意到某些插件/库中有类似的代码行(例如,swipejs中的DFN函数)。它是为了支持某种浏览器不兼容,还是仅仅是编写代码的糟糕方式,我应该完全忽略它?我想知道是否有某种好处。提前感谢您的时间。

JavaScript是单线程的,因此一次只能做一件事。使用0ms timeout调用setTimeout时,您告诉引擎尽快安排该func的执行。这通常是在当前调用堆栈完成执行之后

异步执行是一种有效的调度工作的方法


有关更多详细信息,请参阅。

它用于以非阻塞方式调用函数。因此,
setTimeout
之后的每个函数调用都会立即执行,而
setTimeout(func,0)
中的
func
在有可用资源的情况下(有点像并行的低优先级线程)会异步执行。。太棒了!!我学到了很多!!:)