diff --git a/adev/shared-docs/services/search.service.ts b/adev/shared-docs/services/search.service.ts index a557ebd2442..eb44dfa42f8 100644 --- a/adev/shared-docs/services/search.service.ts +++ b/adev/shared-docs/services/search.service.ts @@ -228,16 +228,19 @@ function matched(snippet: SnippetResult | undefined): boolean { */ function wait(ms: number, signal: AbortSignal): Promise { return new Promise((resolve, reject) => { - const timeout = setTimeout(() => resolve(), ms); + let timeout: ReturnType | undefined; - signal.addEventListener( - 'abort', - () => { - clearTimeout(timeout); - reject(new Error('Operation aborted')); - }, - {once: true}, - ); + const onAbort = () => { + clearTimeout(timeout); + reject(new Error('Operation aborted')); + }; + + timeout = setTimeout(() => { + signal.removeEventListener('abort', onAbort); + resolve(); + }, ms); + + signal.addEventListener('abort', onAbort, {once: true}); }); }