내가 좋아하는 JS 코드를 볼 :자바 스크립트 이벤트는 언제 실행됩니까?
socket = new WebSocket(server);
socket.onopen = function (evt)
{
// STUFF
};
임 항상 약간의 혼란. 다른 언어로 그와 비슷한 것을 쓴다면, onopen
이벤트 핸들러는 server
에 대한 연결이 이미 설정된 후에 바인드되어 onopen
이벤트가 누락 될 수 있습니다. Javascript 인터프리터가 첫 번째 행을 비동기 적으로 실행하더라도 두 번째 행이 너무 늦을 가능성은 여전히 남아 있습니다.
WebSocket socket = new WebSocket();
socket.onopen = new EventHandler<EventArgs>(Open);
socket.Connect(server);
단일 스레드가 이벤트를 즉시 실행할 수 없다는 것을 의미하지는 않지만, C#과 마찬가지로 동일한 스레드에서 호출 할 수 있습니다. 하지만 코드가 유휴 상태가 될 때까지 이벤트가 지연된다고 제안하는 것 같습니다. 재미있는 .. 그게 많이 설명 할 수 있습니다. – Muis
@ Joshua : C# 소켓 클래스는 스레드 풀 (또는 IO 완료 포트 스레드)에서 이벤트를 발생시킬 가능성이 큽니다. Node.js는 할 수 없습니다. – SLaks
예; Javascript의 비동기 액션 ('setTimeout' 포함)은 코드가 실행되는 동안에는 일어나지 않습니다. 이것은 단일 스레드 특성의 직접적인 결과입니다. – SLaks