diff --git a/src/zones.ts b/src/zones.ts index c3e2b2f5e..dc0f7262d 100644 --- a/src/zones.ts +++ b/src/zones.ts @@ -170,12 +170,12 @@ export const ɵzoneWrap = (it: T, blockUntilFirst: boolean, logLevel // eslint-disable-next-line @typescript-eslint/no-misused-promises return run( () => { - pendingTasks.run(() => ret); + const removeTask = pendingTasks.add(); return new Promise((resolve, reject) => { ret.then( (it) => runInInjectionContext(injector, () => run(() => resolve(it))), (reason) => runInInjectionContext(injector, () => run(() => reject(reason))) - ) + ).finally(removeTask); }); }); } else if (typeof ret === 'function' && taskDone) {