Documentation
¶
Overview ¶
Package events 提供了简单的事件发布订阅功能
e := events.New[string]() // 订阅事件 e.Subscribe(func(data string){ fmt.Println("subscriber 1:", data) }) // 订阅事件 e.Subscribe(func(data string){ fmt.Println("subscriber 2:", data) }) e.Publish(true, "test") // 发布事件
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Event ¶
type Event[T any] struct { // contains filtered or unexported fields }
Event 事件处理对象
同时实现了 Subscriber 和 Publisher 两个接口。
func (*Event[T]) Subscribe ¶ added in v0.8.0
func (e *Event[T]) Subscribe(subscriber SubscribeFunc[T]) context.CancelFunc
type Publisher ¶
type Publisher[T any] interface { // Publish 触发事件 // // sync 表示订阅者是否以异步的方式执行; // data 传递给订阅者的数据; Publish(sync bool, data T) }
Publisher 事件的发布者
type SubscribeFunc ¶ added in v0.6.0
type SubscribeFunc[T any] func(data T)
SubscribeFunc 订阅者函数
data 为事件传递过来的数据,可能存在多个订阅者, 用户不应该直接修改 data 数据,否则结果是未知的。
type Subscriber ¶
type Subscriber[T any] interface { // Subscribe 注册订阅事件 // // 返回用于注销此订阅事件的方法。 Subscribe(SubscribeFunc[T]) context.CancelFunc }
Subscriber 供用户订阅事件的对象接口
Click to show internal directories.
Click to hide internal directories.