为什么同时执行3个setTimeout函数(作为宏任务)?

问题描述 投票:0回答:1

setTimeout 是一个宏任务,对吗?据我了解,事件循环在 1 个“tick”中仅执行 1 个宏任务。那么,为什么这些函数看起来像是在事件循环的一个“tick”中执行的呢?我的意思是,只是在一个 1000 毫秒的延迟中,而不是在三个 1000 毫秒的延迟链中。

setTimeout(() => console.log("First"), 1000)
setTimeout(() => console.log("Second"), 1000)
setTimeout(() => console.log("Third"), 1000)
javascript settimeout event-loop
1个回答
0
投票

您的所有 setTimeouts 都是相互独立的。它们将被推送到回调队列,而不等待第一个被执行。

© www.soinside.com 2019 - 2024. All rights reserved.