Documentation
¶
Index ¶
- type EventEmitter
- func (self *EventEmitter) AddListener(event string, listener interface{}, id interface{})
- func (self *EventEmitter) Emit(event string, argv ...interface{}) <-chan *Response
- func (self *EventEmitter) Init()
- func (self *EventEmitter) Listeners(event string) []Listener
- func (self *EventEmitter) On(event string, listener interface{}, id interface{})
- func (self *EventEmitter) RemoveListener(event string, id interface{})
- func (self *EventEmitter) RemoveListeners(event string)
- type Listener
- type Response
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EventEmitter ¶
type EventEmitter struct {
// contains filtered or unexported fields
}
Example ¶
// Construct a new EventEmitter instance
emitter := New()
emitter.On("hello", func() {
fmt.Println("Hello World")
}, 1)
emitter.On("hello", func() {
fmt.Println("Hello Hello World")
}, 2)
// Wait until all handlers have finished
<-emitter.Emit("hello")
Output: Hello World Hello Hello World
func New ¶
func New() *EventEmitter
func (*EventEmitter) AddListener ¶
func (self *EventEmitter) AddListener(event string, listener interface{}, id interface{})
AddListener adds an event listener on the given event name. id is used to keep track of different listeners and distinguish one from the other. If a listener with a duplicate id is added, the second one is ignored.
func (*EventEmitter) Emit ¶
func (self *EventEmitter) Emit(event string, argv ...interface{}) <-chan *Response
Emits the given event. Puts all arguments following the event name into the Event's `Argv` member. Returns a channel if listeners were called, nil otherwise.
Example ¶
emitter := New()
emitter.On("hello", func(name string) {
fmt.Printf("Hello World %s\n", name)
}, 3)
<-emitter.Emit("hello", "John")
Output: Hello World John
func (*EventEmitter) Init ¶
func (self *EventEmitter) Init()
Allocates the EventEmitters memory. Has to be called when embedding an EventEmitter in another Type.
Example ¶
package main
type SampleServer struct {
EventEmitter
}
func NewServer() *Server {
s := new(Server)
// Initialize Maps
s.EventEmitter.Init()
return s
}
func main() {
s := NewServer()
// Do something
s.Emit("connect" /*, conn */)
}
Output:
func (*EventEmitter) Listeners ¶
func (self *EventEmitter) Listeners(event string) []Listener
func (*EventEmitter) On ¶
func (self *EventEmitter) On(event string, listener interface{}, id interface{})
Alias to AddListener.
func (*EventEmitter) RemoveListener ¶
func (self *EventEmitter) RemoveListener(event string, id interface{})
RemoveListener removes the listener listening to `event' with the specified id.
func (*EventEmitter) RemoveListeners ¶
func (self *EventEmitter) RemoveListeners(event string)
RemoveListeners removes all listeners from the given event.