gpt4 book ai didi

javascript - setTimeout 是否被添加到调用堆栈中?

转载 作者:行者123 更新时间:2023-12-01 23:12:14 26 4
gpt4 key购买 nike

我一直在学习 setTimeout 和同步代码与异步代码,我正在观看一个教程视频,其中展示了各种被调用和添加到调用堆栈的函数,例如一个简单地添加 2 个数字的函数。

然而,对于 setTimeout,他们没有显示当它被调用时它被添加到调用堆栈中,我知道这会触发一个 web API 并且回调被添加到一个队列,但我很好奇在 setTimeout 被 JS 引擎执行的那一刻,它是否被添加到调用堆栈中?

最佳答案

in the moment that setTimeout is being executed by the JS engine, is it added to the call stack or not?

是的。一旦回调被注册,它就会从调用堆栈中弹出,所以这几乎不需要任何时间。

当给定的延迟过去后,回调将排队。然后当调用栈为空时,JS会去处理事件队列,回调就会被调用。此回调也将添加到调用堆栈中。

请注意,setTimeout 和回调不会添加到调用堆栈累积。保证在将回调推送给它之前调用堆栈将首先被清空。

关于javascript - setTimeout 是否被添加到调用堆栈中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69690892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com