Hello, Android!
이벤트 처리 본문
지금까지의 노드 코드를 보면 .on() 으로 시작하는 부분들이 보였다
여기서 on은 특정 이벤트가 발생했을때 콜백 함수를 호출할수 있도록
이벤트를 등록한 것이다
이러한 이벤트를 사용자가 직접 만드는것도 가능하다
events 모듈을 사용하여 객체를 만들고 해당 객체에 이벤트와 리스너를 연결하며
모듈 내에 이벤트를 제어하기 위한 함수들이 존재한다
- on(이벤트명, 콜백) / addListener(이벤트명, 콜백)
이벤트와 콜백을 연결하며 on과 addListener은 기능이 동일하다
위의 frodo이벤트에 on, addListener를 따로 연결하였다
즉 이벤트 하나에 여러개의 콜백을 연결할수 있으며
한번 이벤트가 호출되면 위에서 아래로 모든 콜백이 실행된다
- emit(이벤트명)
매개변수로 이벤트명을 넣으면 해당 이벤트의 콜백이 실행된다
- once(이벤트명)
emit함수를 통해 하나의 이벤트를 여러번 호출할수 있지만 once를 사용하면 한번만 호출되며
이후에 emit을 사용해도 호출이 되지 않는다
- listenerCount(이벤트명)
매개변수의 이벤트에 몇개의 리스너가 연결되어있는지 확인한다
25번 라인에 frodo이벤트의 수를 확인했을때
frodo는 위에서 on으로 하나 addListener로 한개 총 두개가 있기때문에 2가 출력된다
- removeListener(이벤트명, 리스너)
해당 이벤트의 리스너를 삭제한다
위에서는 con이벤트의 conLieten을 삭제하였기때문에
리스너 카운트로 확인을 하면 0이 나온다
- removeAllListeners(이벤트명)
해당 이벤트의 모든 리스너가 삭제된다
frodo 이벤트는 on함수와 addListener함수를 각각 사용하여 두개의 리스너를 갖고 있지만
removeAllListeners(frodo)로 모든 리스너를 삭제하였기 때문에
리스너 카운터로 확인을 하면 0이 나온다