1 line
761 B
JavaScript
1 line
761 B
JavaScript
|
|
function getCallbacks(obj,name){if(!obj)throw new Error("obj cannot be null!");let allCallbacks=obj._callbacks,list=(allCallbacks||(allCallbacks={},obj._callbacks=allCallbacks),allCallbacks[name]);return list||(allCallbacks[name]=[],list=allCallbacks[name]),list}export default{on(obj,eventName,fn){getCallbacks(obj,eventName).push(fn)},off(obj,eventName,fn){obj=getCallbacks(obj,eventName),eventName=obj.indexOf(fn);-1!==eventName&&obj.splice(eventName,1)},trigger(obj,eventName){var eventArgs=[{type:eventName},...arguments[2]||[]],callbacks=getCallbacks(obj,eventName).slice(0);for(let i=0,length=callbacks.length;i<length;i++)try{callbacks[i].apply(obj,eventArgs)}catch(err){console.error(`Error during callback execution for event '${eventName}':`,err)}}};
|