Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.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
setTimeout函数在javascript中是如何工作的?_Javascript_Multithreading - Fatal编程技术网

setTimeout函数在javascript中是如何工作的?

setTimeout函数在javascript中是如何工作的?,javascript,multithreading,Javascript,Multithreading,有人能解释一下setTimeout函数在javascript中是如何工作的吗? 我将一个onclick监听器附加到某个HTML元素上,onclick函数在那里提供回调函数。当我单击HTML元素时,它会重定向到另一个页面。我的问题如下: 单击后是否会执行回调功能?我做了一些测试,看起来好像在某些地方掉了下来。 如果我使用setTimeout(function(){…},0)放置回调函数,这是否意味着它将放在后台线程上并始终完全执行 有人能解释一下setTimeout函数背后的机制吗 非常感谢,请查

有人能解释一下setTimeout函数在javascript中是如何工作的吗? 我将一个
onclick
监听器附加到某个HTML元素上,
onclick
函数在那里提供回调函数。当我单击HTML元素时,它会重定向到另一个页面。我的问题如下:

  • 单击后是否会执行回调功能?我做了一些测试,看起来好像在某些地方掉了下来。
  • 如果我使用
    setTimeout(function(){…},0)
    放置回调函数,这是否意味着它将放在后台线程上并始终完全执行
  • 有人能解释一下setTimeout函数背后的机制吗

  • 非常感谢,

    请查看设置超时的MDN页面


    看到一些代码实现会很有帮助,但通常超时延迟为0的回调会立即调用给定的回调。

    不是“立即”。当当前线程终止且队列为空时,它被排队调用。您似乎在说问题在于回调函数没有触发。setTimeout不会帮助解决这个问题。你能提供被点击的HTML元素和相关联的js代码的定义吗?