Error Handling
When triggering events, if an event handler (listener) throws an exception, FastEvent handles errors as follows:
Default Behavior
By default, FastEvent ignores errors and returns error objects.
ts
const emitter = new FastEvent();
const listener1 = () => 1)
const listener2 = () => { throw new Error('error2')
const listener3 = () => { throw new Error('error3')
emitter.on('test', listener1);
emitter.on('test', listener2);
emitter.on('test', listener3);
const results = emitter.emit('test','x');
// results = [1, Error, Error]Note
Errors are returned as results, and the array order matches the order in which the listeners were registered.
Throwing Errors
You can control whether to ignore errors using the ignoreErrors parameter.
typescript
const emitter = new FastEvent({
ignoreErrors: false
});
const listener1 = () => 1)
const listener2 = () => { throw new Error('error2')
const listener3 = () => { throw new Error('error3')
emitter.on('test', listener1);
emitter.on('test', listener2);
emitter.on('test', listener3);
try{
emitter.emit('test','x');
}catch(e){
console.log(e);
}