javascript - 使用 setTimeout(fn, 0) 和不使用的区别
问题描述
我有一个关于setTimeout
函数的简单问题
我的功能:
function myFunc(){
// some code here
}
什么时候不一样
我调用一个有和没有的函数setTimeout
:
myFunc();
setTimeout(function(){
myFunc();
}, 0);
有人可以解释帮助我吗?谢谢你。
解决方案
setTimeout
等待给定的延迟,然后为其回调安排一个新任务。这就是为什么在脚本结束后记录 setTimeout 的原因,因为记录脚本结束是第一个任务的一部分,而 setTimeout 记录在单独的任务中。是的,我们差不多完成了,但我需要你在接下来的时间里保持坚强……</p>
任务是计划好的,因此浏览器可以从其内部进入 JavaScript/DOM 领域,并确保这些操作按顺序发生。在任务之间,浏览器可能会呈现更新。从鼠标点击到事件回调需要调度任务,解析 HTML 也是如此,在上面的示例中,setTimeout
.
https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/
推荐阅读
- java - Spring Boot reactor 测试如何记录和检查 Flux 的测试
使用 StepVerifier 包含字符串 - node.js - puppeteer:如何循环遍历 nth-child 并根据条件做某事?
- java - 我可以“扩展”一个方法,或者在另一个方法中调用一个方法吗?
- python - Python3-用 DateTime 类中的日期替换字符串值
- web-scraping - 网页抓取设计 - 最佳实践
- azure - Azure AD 中代表流的 OAuth 的 Base64 SAML 断言无效
- celery - celery 4.3,任务组中的 SoftTimeLimitExceeded
- google-cloud-platform - 使用 terraform 自动创建防火墙规则以及创建 Dataproc 集群
- java - 如何修复此错误:模块“packageName”生产:java.lang.ClassCastExcept
- java - 将可执行文件 (.exe) 嵌入 php