reactor模式在Node.js中是如何工作的?
reactor模式在Node.js中是如何工作的?,node.js,Node.js,我正在阅读Node.js设计模式。我被困在对反应堆模式的理解中。我在这里没有看到任何调用堆栈。我认为调用堆栈是Node.js设计的主要部分之一。有人能帮我理解这个图表吗?也没有回调队列。一切都从应用程序开始,应用程序发出请求,事件解复用器收集这些请求,然后形成队列、事件队列。事件解复用器由libuv运行,libuv是一个异步IO库,允许Node.js执行I/O 在图中可以看到一个事件队列。实际上,不仅有1个事件队列,还有7个基本队列。这些队列具有递增优先级,事件循环首先检查优先级最高的队列 计时
我正在阅读Node.js设计模式。我被困在对反应堆模式的理解中。我在这里没有看到任何调用堆栈。我认为调用堆栈是Node.js设计的主要部分之一。有人能帮我理解这个图表吗?也没有回调队列。一切都从应用程序开始,应用程序发出请求,事件解复用器收集这些请求,然后形成队列、事件队列。事件解复用器由libuv运行,libuv是一个异步IO库,允许Node.js执行I/O 在图中可以看到一个事件队列。实际上,不仅有1个事件队列,还有7个基本队列。这些队列具有递增优先级,事件循环首先检查优先级最高的队列 计时器队列具有最高优先级。setTimeout和setInterval函数在此处排队。一旦事件在此队列中完成,或者时间到了,事件循环将这些函数传递给调用堆栈,在图中它被命名为execute handler 一旦其中一个事件队列完成,事件循环将首先检查另外两个队列,而不是跳到下一个队列,这两个队列将对其他微任务和process.nextTick函数进行排队。然后它将跳转到下一个队列。此图将帮助您可视化事件循环。 如果事件队列中没有事件,或者事件解复用器没有挂起的请求,则程序将完成 注意:您提到的回调队列是事件队列,调用堆栈是执行处理程序
归功于packtpub.com是的,我认为这样的图表会让任何人感到困惑。。。如果您只是看一些示例代码,而不是试图解释复杂的图表,这些图表并不能真正澄清任何事情,那么我认为无论“反应器模式”是什么,您都会更清楚。我的猜测是,根据名称,它意味着“基于事件的编程”,这在Node.js中非常自然,“一旦事件在这个队列中完成”,它如何知道事件已经完成?循环轮询来自操作系统的信息还是操作系统通知它?谁将事件处理到操作系统,何时决定处理?