【发布时间】:2016-06-17 06:28:22
【问题描述】:
我正在尝试了解同步事件多路分离如何成为忙碌等待的解决方案。
假设有 3 个 IO 操作,我们有一个不断循环的代码,以检查 3 个操作中的任何一个是否有数据可供读取。
arry = [event1 , event2 , event3]
while(arry is not empty)
{
for(i = 0 ; i <= 2 ; i++)
{
if(arry[i] has something to read)
{
read data;
}
else
{
continue to next i;
}
if(arry[i] read has finished){
remove i from arry
}
}
}
上面的伪代码做了一个忙等待。
现在在同步事件多路分离或反应器模式中,事件侦听器可以在事件发生时对其进行响应。但是事件监听器如何在不忙于等待的情况下做到这一点呢?
【问题讨论】:
-
我不得不承认我从未听说过“同步事件多路分解”。您能否指出一些描述它的资源,或者在您的问题中放置一些示例(伪)代码?
-
你不会做任何与 JavaScript 事件同步的事情。但这并不意味着反应器模式也不能异步工作 - 您无需在事件到达之间忙于等待,您只需在每个等待的事件上安排循环代码。
标签: javascript node.js dom-events