MCPcopy
hub / github.com/angular/angular / runInInjectionContext

Function runInInjectionContext

packages/core/src/di/contextual.ts:37–59  ·  view source on GitHub ↗
(injector: Injector, fn: () => ReturnT)

Source from the content-addressed store, hash-verified

35 * @publicApi
36 */
37export function runInInjectionContext<ReturnT>(injector: Injector, fn: () => ReturnT): ReturnT {
38 let internalInjector: PrimitivesInjector;
39 if (injector instanceof R3Injector) {
40 assertNotDestroyed(injector);
41 internalInjector = injector;
42 } else {
43 internalInjector = new RetrievingInjector(injector);
44 }
45
46 let prevInjectorProfilerContext: InjectorProfilerContext;
47 if (ngDevMode) {
48 prevInjectorProfilerContext = setInjectorProfilerContext({injector, token: null});
49 }
50 const prevInjector = setCurrentInjector(internalInjector);
51 const previousInjectImplementation = setInjectImplementation(undefined);
52 try {
53 return fn();
54 } finally {
55 setCurrentInjector(prevInjector);
56 ngDevMode && setInjectorProfilerContext(prevInjectorProfilerContext!);
57 setInjectImplementation(previousInjectImplementation);
58 }
59}
60
61/**
62 * Whether the current stack frame is inside an injection context.

Callers 15

to_signal_spec.tsFile · 0.90
testFunction · 0.90
di_spec.tsFile · 0.90
TestCmpClass · 0.90
runPlatformInitializersFunction · 0.90
runInitializersMethod · 0.90
runInInjectionContextMethod · 0.90

Calls 5

assertNotDestroyedFunction · 0.90
setInjectImplementationFunction · 0.90
setCurrentInjectorFunction · 0.85
fnFunction · 0.50

Tested by 1

testFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…