이 글에서는 주로 Node.js 이벤트 루프에 대한 자세한 설명과 예제를 소개합니다. Node.js에는 이벤트 모듈을 도입하고 EventEmitter 클래스를 인스턴스화하여 이벤트를 바인딩하고 모니터링할 수 있습니다.
Node.js 이벤트 루프 세부 정보 및 예제
Node.js는 단일 프로세스 단일 스레드 애플리케이션이지만 이벤트와 콜백을 통해 동시성을 지원하므로 성능이 매우 높습니다.
Node.js의 모든 API는 비동기식이며 독립적인 스레드로 실행되고 비동기 함수 호출을 사용하며 동시성을 처리합니다.
Node.js 기본적으로 모든 이벤트 메커니즘은 디자인 패턴에서 관찰자 패턴을 사용하여 구현됩니다.
Node.js 단일 스레드는 이벤트 관찰자가 종료되지 않을 때까지 while(true) 이벤트 루프를 입력하는 것과 유사합니다. 각 비동기 이벤트는 이벤트가 발생하면 콜백 함수가 호출됩니다. Node.js에는 다음 예제와 같이 이벤트 모듈을 도입하고 EventEmitter 클래스를 인스턴스화하여 이벤트를 바인딩하고 수신할 수 있습니다.
// 引入 events 模块 var events = require('events'); // 创建 eventEmitter 对象 var eventEmitter = new events.EventEmitter(); // 创建事件处理程序 var connectHandler = function connected() { console.log(1); // 触发 data_received 事件 eventEmitter.emit('data_received'); } // 绑定 connection 事件处理程序 eventEmitter.on('connection', connectHandler); // 使用匿名函数绑定 data_received 事件 eventEmitter.on('data_received', function(){ console.log(2); }); // 触发 connection 事件 eventEmitter.emit('connection'); console.log(3);
Node 애플리케이션에서 비동기적으로 실행하는 기능 작업은 콜백 함수를 마지막 매개변수로 취하고 콜백 함수는 오류 객체를 첫 번째 매개변수로 받습니다.
위 내용은 Node.js 이벤트 루프 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!