MCPcopy Index your code
hub / github.com/angular/angular / afterEveryRenderImpl

Function afterEveryRenderImpl

packages/core/src/render3/after_render/hooks.ts:435–467  ·  view source on GitHub ↗

* Shared implementation for `afterEveryRender` and `afterNextRender`.

(
  callbackOrSpec:
    | VoidFunction
    | {
        earlyRead?: () => unknown;
        write?: (r?: unknown) => unknown;
        mixedReadWrite?: (r?: unknown) => unknown;
        read?: (r?: unknown) => void;
      },
  injector: Injector,
  options: AfterRenderOptions | undefined,
  once: boolean,
)

Source from the content-addressed store, hash-verified

433 * Shared implementation for `afterEveryRender` and `afterNextRender`.
434 */
435function afterEveryRenderImpl(
436 callbackOrSpec:
437 | VoidFunction
438 | {
439 earlyRead?: () => unknown;
440 write?: (r?: unknown) => unknown;
441 mixedReadWrite?: (r?: unknown) => unknown;
442 read?: (r?: unknown) => void;
443 },
444 injector: Injector,
445 options: AfterRenderOptions | undefined,
446 once: boolean,
447): AfterRenderRef {
448 const manager = injector.get(AfterRenderManager);
449 // Lazily initialize the handler implementation, if necessary. This is so that it can be
450 // tree-shaken if `afterEveryRender` and `afterNextRender` aren't used.
451 manager.impl ??= injector.get(AfterRenderImpl);
452
453 const tracing = injector.get(TracingService, null, {optional: true});
454
455 const destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
456 const viewContext = injector.get(ViewContext, null, {optional: true});
457 const sequence = new AfterRenderSequence(
458 manager.impl,
459 getHooks(callbackOrSpec),
460 viewContext?.view,
461 once,
462 destroyRef,
463 tracing?.snapshot(null),
464 );
465 manager.impl.register(sequence);
466 return sequence;
467}
468
469/** `AfterRenderRef` that does nothing. */
470export const NOOP_AFTER_RENDER_REF: AfterRenderRef = {

Callers 2

afterEveryRenderFunction · 0.85
afterNextRenderFunction · 0.85

Calls 4

snapshotMethod · 0.80
getHooksFunction · 0.70
getMethod · 0.65
registerMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…