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

Function triggerDeferBlock

packages/core/src/defer/triggering.ts:320–362  ·  view source on GitHub ↗
(triggerType: TriggerType, lView: LView, tNode: TNode)

Source from the content-addressed store, hash-verified

318 * no additional actions are taken.
319 */
320export function triggerDeferBlock(triggerType: TriggerType, lView: LView, tNode: TNode) {
321 const tView = lView[TVIEW];
322 const lContainer = lView[tNode.index];
323 ngDevMode && assertLContainer(lContainer);
324
325 if (!shouldTriggerDeferBlock(triggerType, lView)) return;
326
327 const lDetails = getLDeferBlockDetails(lView, tNode);
328 const tDetails = getTDeferBlockDetails(tView, tNode);
329
330 // Defer block is triggered, cleanup all registered trigger functions.
331 invokeAllTriggerCleanupFns(lDetails);
332
333 switch (tDetails.loadingState) {
334 case DeferDependenciesLoadingState.NOT_STARTED:
335 renderDeferBlockState(DeferBlockState.Loading, tNode, lContainer);
336 triggerResourceLoading(tDetails, lView, tNode);
337
338 // The `loadingState` might have changed to "loading".
339 if (
340 (tDetails.loadingState as DeferDependenciesLoadingState) ===
341 DeferDependenciesLoadingState.IN_PROGRESS
342 ) {
343 renderDeferStateAfterResourceLoading(tDetails, tNode, lContainer);
344 }
345 break;
346 case DeferDependenciesLoadingState.IN_PROGRESS:
347 renderDeferBlockState(DeferBlockState.Loading, tNode, lContainer);
348 renderDeferStateAfterResourceLoading(tDetails, tNode, lContainer);
349 break;
350 case DeferDependenciesLoadingState.COMPLETE:
351 ngDevMode && assertDeferredDependenciesLoaded(tDetails);
352 renderDeferBlockState(DeferBlockState.Complete, tNode, lContainer);
353 break;
354 case DeferDependenciesLoadingState.FAILED:
355 renderDeferBlockState(DeferBlockState.Error, tNode, lContainer);
356 break;
357 default:
358 if (ngDevMode) {
359 throwError('Unknown defer block state');
360 }
361 }
362}
363
364/**
365 * The core mechanism for incremental hydration. This triggers or

Callers 15

ɵɵdeferWhenFunction · 0.90
ɵɵdeferHydrateWhenFunction · 0.90
ɵɵdeferHydrateNeverFunction · 0.90
ɵɵdeferHydrateOnIdleFunction · 0.90
ɵɵdeferOnImmediateFunction · 0.90
ɵɵdeferHydrateOnTimerFunction · 0.90
ɵɵdeferOnHoverFunction · 0.90
ɵɵdeferHydrateOnHoverFunction · 0.90
ɵɵdeferOnInteractionFunction · 0.90
ɵɵdeferOnViewportFunction · 0.90

Calls 10

assertLContainerFunction · 0.90
shouldTriggerDeferBlockFunction · 0.90
getLDeferBlockDetailsFunction · 0.90
getTDeferBlockDetailsFunction · 0.90
renderDeferBlockStateFunction · 0.90
throwErrorFunction · 0.90
triggerResourceLoadingFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…