【发布时间】:2021-01-25 16:31:42
【问题描述】:
通过NodeJS的事件循环文档了解到,事件循环处理的回调是已完成的任务。
Libuv的线程处理异步工作是否正确,当它完成后,事件循环从事件队列中拉取工作并返回一个回调?
因为我理解的回调是工作完成后要执行的动作。
如果这个假设是正确的,事件循环什么时候可以阻塞?
此外,事件队列和事件循环仅用于作业完成后的回调执行是没有意义的。
我误会了什么?
【问题讨论】:
-
"事件循环处理的回调是已完成的任务" - 没有。当异步工作完成后,它会在事件循环中调度一个任务(执行回调)。
-
"事件循环从事件队列中提取工作并返回一个回调?" - 不。它从事件队列中提取任务(事件操作)。它执行回调,它不会在任何地方返回它。
-
"事件队列和事件循环仅用于工作完成后的回调执行是没有意义的" - 为什么不呢?
-
yesterday's question 的可能重复项
标签: javascript node.js v8 libuv