2016-10-01 3 views
0

Я использую socket.io в Node.js.Будет ли состояние основного потока в Node.js?

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); 
     } 

Я имею в виду, будет код ниже ждать процесс верхний из-условию, если?

ответ

0

В вашем коде нет ничего ожидающего или блокирующего основной поток. Оба io.on() и socket.on() просто устанавливают обработчики событий. Остальная часть вашего Javascript продолжает работать, и эти обработчики событий будут называться некоторое время в будущем, когда происходит событие, с которым они связаны.

Условный:

if(room in rooms){ 

оценивается в тот момент, что код работает и сразу же выполняет. Он ничего не ждет и не блокирует.

Возможно, мы сможем помочь вам, если вы сообщите нам, что представляет собой реальная проблема, которую вы пытаетесь решить.

+0

Мне нужно понять, когда может возникнуть такая ситуация, когда условие или любая часть кода могут блокировать основной поток. – Babaev

+0

@ Бабаев. Как я уже сказал, ни один из кода, который вы показали, блокирует основной поток. – jfriend00

+0

@Babaev - Если это ответили на ваш вопрос, пожалуйста, сообщите об этом сообществу, нажав зеленую галочку слева от ответа. Если нет, то, пожалуйста, объясните, какая часть вашего текущего вопроса еще не ответила. – jfriend00

Смежные вопросы