Skip to content

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); 
}