diff --git a/packages/core/src/render3/instructions/shared.ts b/packages/core/src/render3/instructions/shared.ts index eb73dd50ce4e..b92598fb7e6a 100644 --- a/packages/core/src/render3/instructions/shared.ts +++ b/packages/core/src/render3/instructions/shared.ts @@ -699,8 +699,17 @@ export function handleUncaughtError(lView: LView, error: any): void { if (!injector) { return; } - const errorHandler = injector.get(INTERNAL_APPLICATION_ERROR_HANDLER, null); - errorHandler?.(error); + // Question (atscott): there's no `destroyed` property on that injector... + // Should we wrap it in a try-catch and re-throw in a timer? + // Or there's any other precise solution? + try { + const errorHandler = injector.get(INTERNAL_APPLICATION_ERROR_HANDLER, null); + errorHandler?.(error); + } catch { + setTimeout(() => { + throw error; + }); + } } /**
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: