>웹 프론트엔드 >JS 튜토리얼 >Node.js 이벤트 루프 튜토리얼

Node.js 이벤트 루프 튜토리얼

巴扎黑
巴扎黑원래의
2017-08-08 10:35:251695검색

이 글에서는 주로 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 애플리케이션에서 비동기적으로 실행하는 기능 작업은 콜백 함수를 마지막 매개변수로 취하고 콜백 함수는 오류 객체를 첫 번째 매개변수로 받습니다.


rreee

위 내용은 Node.js 이벤트 루프 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.