Files
EdgeNode/internal/events/utils.go

28 lines
507 B
Go
Raw Normal View History

2020-10-28 11:19:06 +08:00
package events
import "sync"
var eventsMap = map[string][]func(){} // event => []callbacks
var locker = sync.Mutex{}
2022-01-02 22:45:37 +08:00
// On 增加事件回调
2020-10-28 11:19:06 +08:00
func On(event string, callback func()) {
locker.Lock()
defer locker.Unlock()
callbacks, _ := eventsMap[event]
callbacks = append(callbacks, callback)
eventsMap[event] = callbacks
}
2022-01-02 22:45:37 +08:00
// Notify 通知事件
2020-10-28 11:19:06 +08:00
func Notify(event string) {
locker.Lock()
callbacks, _ := eventsMap[event]
locker.Unlock()
2021-02-06 17:34:33 +08:00
2020-10-28 11:19:06 +08:00
for _, callback := range callbacks {
callback()
}
}