MCPcopy
hub / github.com/angular/angular / runSerially

Function runSerially

packages/router/test/integration/guards.spec.ts:2411–2425  ·  view source on GitHub ↗
(
        guards: CanActivateFn[] | CanActivateChildFn[],
      )

Source from the content-addressed store, hash-verified

2409
2410 it('can run functional guards serially', async () => {
2411 function runSerially(
2412 guards: CanActivateFn[] | CanActivateChildFn[],
2413 ): CanActivateFn | CanActivateChildFn {
2414 return (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {
2415 const injector = inject(EnvironmentInjector);
2416 const observables = guards.map((guard) => {
2417 const guardResult = injector.runInContext(() => guard(route, state));
2418 return wrapIntoObservable(guardResult).pipe(first());
2419 });
2420 return concat(...observables).pipe(
2421 takeWhile((v) => v === true),
2422 last(),
2423 );
2424 };
2425 }
2426
2427 const guardDone: string[] = [];
2428

Callers 1

guardsIntegrationSuiteFunction · 0.85

Calls 7

injectFunction · 0.90
wrapIntoObservableFunction · 0.90
guardFunction · 0.85
firstFunction · 0.85
mapMethod · 0.80
runInContextMethod · 0.80
lastFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…