0
이것이 작동하지 않는 이유가 확실하지 않습니다. 누군가 나를 단서 줄 수 있습니까? 나는 어떤 이벤트가 기록 얻을 표시되지 않습니다,하지만 그들은 물론, 내가 :)Coffee 하위 클래스 문제가있는 EventEmitter
{EventEmitter} = require 'events'
class Base extends EventEmitter
class App extends Base
constructor: (cb) ->
console.log 'setup'
@on 'listener:1', (data) ->
console.log 'listener 1: ' + data
@on 'listener:2', (data) ->
console.log 'listener 2: ' + data
cb()
class One extends Base
fire:() ->
console.log 'fire 1'
@emit 'listener:1', 1
class Two extends Base
fire:() ->
console.log 'fire 2'
@emit 'listener:2', 2
new App(
() ->
setTimeout (->
one = new One()
one.fire()
setTimeout (->
two = new Two()
two.fire()
), 2000
), 2000
)
글쎄, 그런 식으로 넣을 때! 나는 EventEmitter가 프로세스 또는 무언가와 같이 세계적이라는 것을 추측했다. 어쩌면 내가 이것을 다시 생각할 필요가있다. 감사! –
아, 잡았다. 아니요, 이벤트 청취자는 EventEmitter 인스턴스에 로컬입니다. 'on'이 호출됩니다. 하나의 인스턴스를 만들고 Event Bus 같은 모듈 형태로 내보내기하여 "글로벌"EventEmitter를 구축 할 수 있습니다. –
그게 정확히 내가 한 짓이야 :) 고마워! –