diff --git a/src/util/callbacks.ts b/src/util/callbacks.ts index b242dc6d2..f7b226bdd 100644 --- a/src/util/callbacks.ts +++ b/src/util/callbacks.ts @@ -1,8 +1,8 @@ export function createCallbackManager() { - const callbacks: AnyToVoidFunction[] = []; + const callbacks = new Set(); function addCallback(cb: AnyToVoidFunction) { - callbacks.push(cb); + callbacks.add(cb); return () => { removeCallback(cb); @@ -10,10 +10,7 @@ export function createCallbackManager() { } function removeCallback(cb: AnyToVoidFunction) { - const index = callbacks.indexOf(cb); - if (index !== -1) { - callbacks.splice(index, 1); - } + callbacks.delete(cb); } function runCallbacks(...args: any[]) { @@ -23,7 +20,7 @@ export function createCallbackManager() { } function hasCallbacks() { - return Boolean(callbacks.length); + return Boolean(callbacks.size); } return {