Documentation ¶
Overview ¶
Package eventemitter provides tools that allow your application components to communicate with each other by dispatching events and listening to them.
Index ¶
- type Emitter
- func (e *Emitter) AddSubscriber(subscriber EventSubscriber)
- func (e *Emitter) Dispatch(name string, args ...interface{})
- func (e *Emitter) RemoveSubscriber(subscriber EventSubscriber)
- func (e *Emitter) Subscribe(name string, listener interface{})
- func (e *Emitter) Unsubscribe(name string, listener interface{})
- func (e *Emitter) Wait()
- type EventEmitter
- type EventSubscriber
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Emitter ¶ added in v1.1.0
Emitter struct
func (*Emitter) AddSubscriber ¶ added in v1.1.0
func (e *Emitter) AddSubscriber(subscriber EventSubscriber)
AddSubscriber adds an event subscriber.
Example ¶
//see: example_test.go#L30 for userSubscriber emitter := eventemitter.New() // Subscribe user.created event emitter.AddSubscriber(&userSubscriber{}) // Dispatch user.created event with user id emitter.Dispatch("user.created", 1234) // wait for all listeners to be executed emitter.Wait()
Output:
func (*Emitter) RemoveSubscriber ¶ added in v1.1.0
func (e *Emitter) RemoveSubscriber(subscriber EventSubscriber)
RemoveSubscriber removes an event subscriber.
func (*Emitter) Subscribe ¶ added in v1.1.0
Subscribe adds an event listener that listens on the specified events.
Example ¶
emitter := eventemitter.New() // Subscribe user.created event emitter.Subscribe("user.created", func(id int) { fmt.Printf("UserID: %d\n", id) }) // Dispatch user.created event with user id emitter.Dispatch("user.created", 1234) // wait for all listeners to be executed emitter.Wait()
Output:
func (*Emitter) Unsubscribe ¶ added in v1.1.0
Unsubscribe removes an event listener from the specified events.
type EventEmitter ¶
type EventEmitter interface { Subscribe(name string, listener interface{}) Unsubscribe(name string, listener interface{}) Dispatch(name string, args ...interface{}) AddSubscriber(subscriber EventSubscriber) RemoveSubscriber(subscriber EventSubscriber) Wait() }
EventEmitter interface
type EventSubscriber ¶ added in v1.1.0
type EventSubscriber interface {
SubscribedEvents() map[string][]interface{}
}
EventSubscriber knows himself what events he is interested in. If an EventSubscriber is added to an EventDispatcherInterface, the manager invokes {@link SubscribedEvents} and registers the subscriber as a listener for all returned events.