xxxxxxxxxx
combineLatest(observable1$, observable2$).subscribe(
([res1, res2]) = {
console.log(`${res1} ${res2}`);
}
);
xxxxxxxxxx
observable1$.pipe(
first(1)
)
.subscribe(res1 = {
observable2$.pipe(
first(1)
)
.subscribe(res2 = {
console.log(`${res1} ${res2}`);
});
});
xxxxxxxxxx
observable1$.pipe(
withLatestFrom(observable2$),
first()
)
.subscribe(([res1, res2]) = {
console.log(${res1};
${res2});
});
xxxxxxxxxx
import { Injectable } from '@angular/core';
import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
export class RouteGuard implements CanActivate {
constructor(private router: Router) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
// If token is exist, user may login
if (localStorage.getItem('token')) {
return true;
}
// otherwise redirect to login page
this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });
return false;
}
}