【问题标题】:Will condition block main thread in Node.js?条件会阻塞 Node.js 中的主线程吗?
【发布时间】:2016-10-01 15:41:20
【问题描述】:

我在 Node.js 中使用 socket.io。

var rooms = {"a", "b"};
io.on('connection', function(client) {  
    socket.on('room', function(room) {
       if(room in rooms){
          socket.join(room);
       }
    });
});

...Code below...

下面会阻塞条件主线程和进程:

if(room in rooms){
          socket.join(room);
       }

我的意思是,如果下面的代码会等待进程上限条件吗?

【问题讨论】:

    标签: node.js


    【解决方案1】:

    您的代码中没有任何内容会等待或阻塞主线程。 io.on()socket.on() 都只是安装事件处理程序。 Javascript 的其余部分会继续运行,并且这些事件处理程序将在未来某个时间与它们关联的事件发生时被调用。

    条件:

    if(room in rooms){
    

    在代码运行并立即执行时进行评估。它不会等待任何东西或阻塞。

    如果您告诉我们您要解决的实际问题是什么,我们可能会为您提供更好的帮助。

    【讨论】:

    • 我需要了解什么时候会出现这种情况,什么时候条件或代码的任何部分会阻塞主线程。
    • @Babaev - 正如我已经说过的,您显示的所有代码都不会阻塞主线程。
    • @Babaev - 如果这回答了您的问题,请通过单击答案左侧的绿色复选标记向社区表明这一点。如果没有,请说明您当前问题的哪一部分尚未得到解答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多