Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A stable Go event library to subscribe and fire events used to decouple the event source and sink in reactive add-on based systems. Generics supported!

License

Notifications You must be signed in to change notification settings

robinbraemer/event

Repository files navigation

event

Go event library to subscribe and fire events used to decouple the event source and sink in complex or add-on based systems.

// Custom event type
type MyEvent struct {
 Message string
}
// Create a new event manager.
mgr := New()
// Subscribe to the event.
Subscribe(mgr, 0, func(e *MyEvent) {
 // Handle the event.
 fmt.Println("handler A received event:", e.Message)
})
// Subscribe to the event higher priority.
Subscribe(mgr, 1, func(e *MyEvent) {
 // Handle the event.
 fmt.Println("handler B received event:", e.Message)
 e.Message = "hello gophers"
})
unsubscribe := Subscribe(mgr, 0, func(e *MyEvent) {
 // Handle the event.
 fmt.Println("handler C received event:", e.Message)
})
// Unsubscribe from the event if you want to or ignore and never call it.
unsubscribe()
// Fire the event.
mgr.Fire(&MyEvent{Message: "hello world"})

Used by

About

A stable Go event library to subscribe and fire events used to decouple the event source and sink in reactive add-on based systems. Generics supported!

Topics

Resources

License

Stars

Watchers

Forks

AltStyle によって変換されたページ (->オリジナル) /