event

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2021 License: MIT Imports: 4 Imported by: 0

README

event

介绍

event interface & inproc event hub

接口定义
// Manager 定义事件管理器接口
type Manager interface {
	// On 注册一个指定事件
	//	@trigger 触发事件的 trigger
	//	@handlerName 触发事件的 trigger 的标记名称
	//	@handler 事件委托
	// returns
	// 	@error ErrInvalidTrigger | ErrInvalidHandlerName | ErrEventHandlerNotFunc
	On(trigger, handlerName string, handler interface{}) error

	// Fire 触发一个指定事件
	//	@trigger 触发事件的 trigger
	//	@args 回调事件委托传入的参数
	// returns
	//	@bool 触发是否被链中某个回调给阻止
	//	@error 在回调过程中发生的错误
	Fire(trigger string, args ...interface{}) (stopPropagation bool, err error)

	// RemoveHandler 移除一个指定handler
	//	@trigger 触发事件的 trigger
	//	@handlerName 触发事件的 trigger 的标记名称
	RemoveHandler(trigger, handlerName string)

	// RemoveTrigger 移除一个指定trigger
	//	@trigger 触发事件的 trigger
	RemoveTrigger(trigger string)

	// Triggers 返回所有已注册的 trigger 名
	Triggers() []string

	// HandlerNames 指定 trigger 已绑定的 handler 名称
	HandlerNames(trigger string) []string
}
使用说明
//定义事件(委托)方法 var handler = func(arg1, arg2) (stopPropagation bool, err error)
//	bool 指定链冒泡是否继续,为 true 时阻止传递
//	error 指定委托方法中是否出现错误
//	当停止冒泡或委托错误时,将阻止冒泡

// 初始化
em := NewEventManager() 

// 注册事件 
em.On("trigger", "hanlderName", handler)

// 分发事件 
em.Fire("trigger", arg1, arg2, arg3...) (stopPropagation bool, err error)

// 清除指定链 
em.RemoveTrigger("trigger")

// 清除指定委托
em.RemoveHandler("trigger", "hanlderName")

// 获取事件 trigger 名称集合 
em.Triggers() []string

// 获取指定事件 trigger 的委托名称集合
em.HandlerNames("trigger") []string

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidTriggerName = errors.New(`invalid trigger`)
	ErrInvalidHandlerName = errors.New(`invalid name of handler`)
	ErrEventHandlerNotFn  = errors.New(`event handler is not a function`)
)

Functions

This section is empty.

Types

type Manager

type Manager interface {
	// On 注册一个指定事件
	//	@trigger 触发事件的 trigger
	//	@handlerName 触发事件的 trigger 的标记名称
	//	@handler 事件委托
	// returns
	// 	@error ErrInvalidTrigger | ErrInvalidHandlerName | ErrEventHandlerNotFunc
	On(trigger, handlerName string, handler interface{}) error

	// Fire 触发一个指定事件
	//	@trigger 触发事件的 trigger
	//	@args 回调事件委托传入的参数
	// returns
	//	@bool 触发是否被链中某个回调给阻止
	//	@error 在回调过程中发生的错误
	Fire(trigger string, args ...interface{}) (stopPropagation bool, err error)

	// RemoveHandler 移除一个指定handler
	//	@trigger 触发事件的 trigger
	//	@handlerName 触发事件的 trigger 的标记名称
	RemoveHandler(trigger, handlerName string)

	// RemoveTrigger 移除一个指定trigger
	//	@trigger 触发事件的 trigger
	RemoveTrigger(trigger string)

	// Triggers 返回所有已注册的 trigger 名
	Triggers() []string

	// HandlerNames 指定 trigger 已绑定的 handler 名称
	HandlerNames(trigger string) []string
}

Manager 定义事件管理器接口

func NewEventManager

func NewEventManager() Manager

NewEventManager 创建一个事件管理器

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL