Using pairwise from rxjx you can achieve this easier. import { filter,pairwise } from 'rxjs/operators';
previousUrl: string;
constructor(router: Router) {
router.events
.pipe(filter((evt: any) => evt instanceof RoutesRecognized), pairwise())
.subscribe((events: RoutesRecognized[]) => {
console.log('previous url', events[0].urlAfterRedirects);
console.log('current url', events[1].urlAfterRedirects);
this.previousUrl = events[0].urlAfterRedirects;
});
}