github.com/zly-app/zapp@v1.3.3/handler/handler.go (about) 1 /* 2 ------------------------------------------------- 3 Author : zlyuancn 4 date: 2020/8/22 5 Description : 6 ------------------------------------------------- 7 */ 8 9 package handler 10 11 import ( 12 "github.com/zly-app/zapp/core" 13 ) 14 15 type Handler func(app core.IApp, handlerType HandlerType) 16 17 var handlers = map[HandlerType][]Handler{} 18 19 // handler类型 20 type HandlerType int 21 22 const ( 23 // 在app初始化前 24 BeforeInitializeHandler HandlerType = iota + 1 25 // 在app初始化后 26 AfterInitializeHandler 27 // 在app启动前 28 BeforeStartHandler 29 // 在app启动后 30 AfterStartHandler 31 // 在app退出前 32 BeforeExitHandler 33 // 在app退出后 34 AfterExitHandler 35 ) 36 37 // 添加handler, 和WithHandler不同的是, 它可以在NewApp之前执行, 并且它的执行顺序优先于WithHandler 38 func AddHandler(t HandlerType, hs ...Handler) { 39 handlers[t] = append(handlers[t], hs...) 40 } 41 42 // 触发 43 func Trigger(app core.IApp, t HandlerType) { 44 for _, h := range handlers[t] { 45 h(app, t) 46 } 47 }