You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
func (em*Manager) Fire(namestring, paramsM) (errerror, eEvent) {
name=goodName(name)
// NOTICE: must check the '*' global listenersiffalse==em.HasListeners(name) &&false==em.HasListeners(Wildcard) {
// has group listeners. "app.*" "app.db.*"// eg: "app.db.run" will trigger listeners on the "app.db.*"pos:=strings.LastIndexByte(name, '.')
ifpos<0||pos==len(name)-1 {
return// not found listeners.
}
groupName:=name[:pos+1] +Wildcard// "app.db.*"iffalse==em.HasListeners(groupName) {
return// not found listeners.
}
}
// call listeners use defined Eventife, ok:=em.events[name]; ok {
ifparams!=nil {
e.SetData(params)
}
err=em.FireEvent(e)
returnerr, e
}
// create a basic event instancee=em.newBasicEvent(name, params)
// call listeners handle eventerr=em.FireEvent(e)
return
}
这个函数的如下逻辑
ife, ok:=em.events[name]; ok {
ifparams!=nil {
e.SetData(params)
}
err=em.FireEvent(e)
returnerr, e
}
在并发下会有数据互相覆盖的情况
The text was updated successfully, but these errors were encountered:
这个函数的如下逻辑
在并发下会有数据互相覆盖的情况
The text was updated successfully, but these errors were encountered: