2016-10-01 2 views
0

Node.js에서 socket.io를 사용합니다.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() 모두 이벤트 핸들러를 설치 중입니다. 자바 스크립트의 나머지 부분은 계속 실행되며 관련 이벤트가 발생하면 해당 이벤트 핸들러는 나중에 언젠가 호출됩니다.

조건부

:

if(room in rooms){ 

바로 그 코드 실행 및 실행 순간에 평가된다. 그것은 아무것도 기다리지 않거나 차단하지 않습니다.

실제 문제가 해결하려고하는 것이 무엇인지 알려 주시면 도움이 될 것입니다.

+0

조건이나 코드의 일부가 주 스레드를 차단할 수있는 상황이 언제 나타날 수 있는지 이해해야합니다. – Babaev

+0

@Babaev - 이미 말했듯이, 당신이 보여준 코드 중 어느 것도 주 스레드를 차단하지 않습니다. – jfriend00

+0

@Babaev -이 질문에 대한 답변이 있으면 대답의 왼쪽에있는 녹색 체크 표시를 클릭하여 커뮤니티에 표시하십시오. 그렇지 않은 경우 현재 질문의 어느 부분에 아직 답변하지 않았는지 설명하십시오. – jfriend00

관련 문제