gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/myx/eventx/event.go (about) 1 package eventx 2 3 type Handler func(event *Event) error 4 5 type Event struct { 6 id int 7 // 优先级 8 priority int 9 // 处理函数 10 handler Handler 11 // 12 handlerKey string 13 // 删除标记 14 // 为了避免事件处理函数中触发删除事件操作导致的问题 15 isRemoved bool 16 // 是否执行一次 17 isOnce bool 18 // 监听时赋予的参数 19 OnParams []interface{} 20 // 触发时赋予的参数 21 DispatchParams []interface{} 22 // 事件的类型 23 Kind string 24 // 25 dispatcher *Dispatcher 26 } 27 28 func (event *Event) String() string { 29 return "Listener[" + event.Kind + "]" 30 } 31 32 func (event *Event) Reset() { 33 event.handler = nil 34 event.OnParams = []interface{}{} 35 event.DispatchParams = []interface{}{} 36 37 } 38 39 func (event *Event) Off() { 40 event.dispatcher.Off(event) 41 }