为什么 setTimeout(., 0) 不立即执行
Why doesn't setTimeout(.., 0) execute immediately?
var timeout = setTimeout(function(){
console.log("I'm message from timeout");
},0);
console.log("I'm message from outside timeout");
//1. I'm message from outside timeout
//2. I'm message from timeout
为什么内部指令不首先执行,尽管将 setTimeout 时间设置为 0?我使用包括 0/null 在内的各种时间,我想知道如何保留 setTimeout 对象并使用流执行其指令。
Javascript 代码只在一个线程上运行。 setTimeout
计划稍后运行的函数。所以在js中,当所有当前运行的代码完成执行时,event
循环将寻找任何其他事件。因此setTimeout( .. 0)
将使代码在当前循环之后运行。
console.log("I'm message from outside timeout");
将首先安排执行。一旦完成,setTimeout
将被执行
因此,底线setTimeout(myfunction ,0)
将在当前执行函数后运行myfunction 0ms。
console.log("I'm message from outside timeout");
如果添加另一个控制台.log("我是来自外部超时1的消息");所以当前事件循环将首先记录
I'm message from outside timeout
I'm message from outside timeout1
在启动setTimeout
功能之前。
注意setTimeout
的最小超时为 4ms 。你可以看看这个 堆栈溢出线程 了解更多有关它的信息
相关文章:
- setTimeout函数能否在其前面的代码执行之前激发
- 在setTimeout完成后执行
- 为什么 setTimeout(., 0) 不立即执行
- 函数未在 setTimeout 中执行
- JavaScript setTimeout() 不会等待执行
- 当超出范围时,延迟执行脚本Jquery(或SetTimeOut)BUT
- eval和setTimeout之间的差异执行字符串代码
- toString似乎导致setTimeout不总是为toString的变量参数执行函数
- 在setTimeout中执行jQuery成员函数而不关闭的方法
- 只有setTimeout执行函数.JS
- setTimeout在IE中执行得很快
- setTimeout()/setInterval()赢得't执行**我正在传递函数对象,而不是执行函数
- nodejs:setImmediate 回调在 setTimeout(fn, 0) 之后执行,与 nodejs 文档描述
- setTimeout 是使用 javascript 执行异步函数的好解决方案吗?
- 我尝试在 1 秒后调用 .hide()(使用 setTimeout),但它是直接执行的,为什么
- 为什么不执行嵌套 setTimeout 中的 removeAttribute 调用
- 如果条件更改,请不要执行 setTimeout
- 在进入下一个循环迭代之前执行setTImeout操作
- 过早执行setTimeout
- 不断执行setTimeout后的setInterval