使用setTimeout(fn,0)与不使用它之间的区别

时间:2019-07-08 10:54:51

标签: javascript settimeout

我对setTimeout函数有一个简单的问题

我的功能:

function myFunc(){
   // some code here
}

什么时候有

我调用带有和不带有setTimeout的函数:

myFunc();
setTimeout(function(){
   myFunc();
}, 0);

有人可以帮助我吗?谢谢。

2 个答案:

答案 0 :(得分:1)

setTimeout等待给定的延迟,然后安排新任务进行回调。这就是为什么setTimeout在脚本结束后记录的原因,因为记录脚本结束是第一个任务的一部分, setTimeout将记录在单独的任务中。是的,我们几乎已经完成了这一步,但我需要您在接下来的这段时间内保持坚强……

任务已计划好,因此浏览器可以从内部访问JavaScript / DOM,并确保这些操作顺序发生。在任务之间,浏览器可以呈现更新。从鼠标单击进入事件回调需要进行任务调度,就像解析HTML一样,在上例中为setTimeout

https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/

答案 1 :(得分:0)

  

setTimeout(,0)将在所有当前队列完成后调用,并且   普通函数调用首先进入队列。

您可以在这里看到:

function myFunc1(){
   console.log("In myFunc1");
}

function myFunc2(){
   console.log("In myFunc2");
}

setTimeout(function(){
   myFunc1();
}, 0);

myFunc2();