diff --git a/packages/utilities/src/events.ts b/packages/utilities/src/events.ts index 2d68608d2..ed54bffb0 100644 --- a/packages/utilities/src/events.ts +++ b/packages/utilities/src/events.ts @@ -37,13 +37,15 @@ export function once( handler: Handler['handler'] ): () => void { let done = false - return on(name, function (...args): void { + const dispose = on(name, function (...args): void { if (done === true) { return } done = true + dispose() handler(...args) - }) + }); + return dispose } /**