{ "source": "doc-ko/api/events.markdown", "modules": [ { "textRaw": "Events", "name": "Events", "stability": 4, "stabilityText": "API Frozen", "type": "module", "desc": "
노드의 많은 객체들은 이벤트를 발생시킨다. net.Server
는 서버에 연결이 생길 때마다 \n이벤트를 발생시키고 fs.readStream
는 파일이 열렸을 때 이벤트를 발생시킨다.\n이벤트를 발생시키는 모든 객체들은 events.EventEmitter
의 인스턴스다.\nrequire("events");
를 사용해서 이 모듈에 접근할 수 있다.\n\n
보통 이벤트명은 카멜케이스의 문자열로 표시하지만 이벤트명에 어떤 제약사항은 없기 때문에\n어떤 문자열이라도 사용할 수 있다.\n\n
\n이벤트가 발생할 때 실행할 함수를 객체에 연결할 수 있다. 이러한 함수들을 \n리스너(listener)라고 부른다.\n\n\n
\n", "classes": [ { "textRaw": "Class: events.EventEmitter", "type": "class", "name": "events.EventEmitter", "desc": "EventEmitter 클래스에 접근하려면 require('events').EventEmitter
를 사용한다.\n\n
EventEmitter
인스턴스에서 오류가 발생하면 보통 'error'
이벤트를 발생시킨다. \n노드는 오류 이벤트를 특별한 경우로 대한다. 오류 이벤트에 대한 리스너가 등록되어 있지 않은\n경우 기본 동작은 스택 트레이스를 출력하고 프로그램을 종료하는 것이다.\n\n
모든 이벤트이미터는 새로운 리스너를 추가되었을 때 'newListener'
이벤트를 발생시킨다.\n\n
지정한 event에 대한 리스너 배열의 끝에 listener를 추가한다.\n\n
\nserver.on('connection', function (stream) {\n console.log('someone connected!');\n});
\n",
"signatures": [
{
"params": [
{
"name": "event"
},
{
"name": "listener"
}
]
},
{
"params": [
{
"name": "event"
},
{
"name": "listener"
}
]
}
]
},
{
"textRaw": "emitter.on(event, listener)",
"type": "method",
"name": "on",
"desc": "지정한 event에 대한 리스너 배열의 끝에 listener를 추가한다.\n\n
\nserver.on('connection', function (stream) {\n console.log('someone connected!');\n});
\n",
"signatures": [
{
"params": [
{
"name": "event"
},
{
"name": "listener"
}
]
}
]
},
{
"textRaw": "emitter.once(event, listener)",
"type": "method",
"name": "once",
"desc": "event에 일회성 listener를 추가한다. 이 리스너는\n이벤트가 다음 번에 발생했을 때 딱 한번만 실행된 후 제거된다.\n\n
\nserver.once('connection', function (stream) {\n console.log('Ah, we have our first user!');\n});
\n",
"signatures": [
{
"params": [
{
"name": "event"
},
{
"name": "listener"
}
]
}
]
},
{
"textRaw": "emitter.removeListener(event, listener)",
"type": "method",
"name": "removeListener",
"desc": "지정한 event에 대한 리스너 배열에서 listener를 제거한다.\n주의: 리스너보다 뒤쪽에서 리스너 배열의 배열인덱스를 수정해라.\n\n
\nvar callback = function(stream) {\n console.log('someone connected!');\n};\nserver.on('connection', callback);\n// ...\nserver.removeListener('connection', callback);
\n",
"signatures": [
{
"params": [
{
"name": "event"
},
{
"name": "listener"
}
]
}
]
},
{
"textRaw": "emitter.removeAllListeners([event])",
"type": "method",
"name": "removeAllListeners",
"desc": "event를 지정하지 않으면 모든 리스너를 제거하고 event를 지정하면 지정한 이벤트의\n모든 리스너를 제거한다.\n\n
\n이 함수는 이전에 emitter.listeners(event)
가 반환한 모든 배열을 무력화한다.\n\n\n
기본적으로 EventEmitter는 특정 이벤트에 10개 이상의 리스너가 추가되면 경고메시지를\n출력할 것이다. 이 경고메시지는 메모리 누출을 찾는데 도움을 주는 유용한 기본기능이다.\n명백히 모든 이미터가 10개로 제한되어야 하는 것은 아닐 것이다. 이 함수로 이 리스너 제한을\n늘릴 수 있다. 0을 지정하면 무한대로 등록할 수 있다.\n\n\n
\n", "signatures": [ { "params": [ { "name": "n" } ] } ] }, { "textRaw": "emitter.listeners(event)", "type": "method", "name": "listeners", "desc": "지정한 이벤트의 리스너 배열을 리턴한다.\n\n
\nserver.on('connection', function (stream) {\n console.log('someone connected!');\n});\nconsole.log(util.inspect(server.listeners('connection'))); // [ [Function] ]
\n이 배열은 이벤트 하위시스템이 사용하는 의존 리스너의 리스트에 대한 변경될 수 있는 \n참조가 될 것이다. 하지만 특정 동작은(특히 removeAllListeners) 이 참조를 \n무력화한다.\n\n
\n특정 지점의 리스너에 대한 변경되지 않는 복사본을 얻으려면 \nemitter.listeners(event).slice(0)
등으로 복사본을 만든다.\n\n
node의 차기 버전에서 이 동작은 일관성을 위해서 항상 복사본을 반환하도록 변경될 \n것이다. 작성하는 프로그램에서 배열 메서드를 사용해서 EventEmitter 리스너를 \n수동할 수 있도록 하지 마라. 항상 'on' 메서드를 사용해서 새로운 리스너를 추가해라.\n\n
\n", "signatures": [ { "params": [ { "name": "event" } ] } ] }, { "textRaw": "emitter.emit(event, [arg1], [arg2], [...])", "type": "method", "name": "emit", "desc": "전달한 아규먼트의 순서대로 각 리스너를 실행한다.\n\n
\n", "signatures": [ { "params": [ { "name": "event" }, { "name": "arg1", "optional": true }, { "name": "arg2", "optional": true }, { "name": "...", "optional": true } ] } ] } ], "events": [ { "textRaw": "Event: 'newListener'", "type": "event", "name": "newListener", "params": [], "desc": "이 이벤트를 새로운 리스너가 어딘가에 추가될 때마다 발생한다.\n
\n" } ] } ] } ] }