JavaScript Web API是否运行在与调用堆栈线程不同的线程上?

hjzp0vay  于 2023-05-05  发布在  Java
关注(0)|答案(2)|浏览(95)

在Philip Roberts的以下视频中的12:16,他谈到了Web API和Node API运行在不同的线程上,而不是调用堆栈,如果我理解正确的话?那么,这是正确的吗?Web API和Node API运行在不同的线程上,而不是调用堆栈和事件循环上?
如果为true,这是否意味着它们将与调用堆栈中执行的JavaScript并行运行?
https://www.youtube.com/watch?v=8aGhZQkoFbQ

mpbci0fu

mpbci0fu1#

简短回答:是的。
正如评论中所指出的,Web API“实际上是线程”,尽管具有不同的行为和目的。
最后,当任何回调被推入调用堆栈时,结果仍然会被JavaScript运行时的单一“线程”访问和限制。

lh80um4z

lh80um4z2#

是的,Web API的执行在另一个线程中并行发生,当执行完成时,结果(或回调)被推送到任务队列中,当调用堆栈上没有任何内容时,事件循环会选择此结果(或回调)并将其放在调用堆栈的顶部。
异步代码本身的执行发生在一个单独的线程上,但是与结果一起工作的代码在调用堆栈上执行(除非它是一些更多的异步代码,在这种情况下,对于这个异步代码,同样的事情再次发生)。

相关问题