angualr:8.0.6
产生的起因是,旧的版本会呈现循环援用依赖谬误;
呈现场景:
user.service.ts

import {Injectable} from '@angular/core';  import {of} from 'rxjs';  import {ActivatedRoute, Router} from '@angular/router';  import {tap} from 'rxjs/operators';    @Injectable({    providedIn: 'root'  })  export class UserService {      constructor(      private router: Router,   private route: ActivatedRoute    ) {    }      loginByToken() {      console.log('init start');     return of('111').pipe(tap(() => {        setTimeout(() => {          this.router.navigateByUrl('/login');   }, 2000);   }));   }    }

解决方案是,去掉上面的依赖项

private router: Router,  private route: ActivatedRoute

angular9 和 angular10 曾经解决了这个问题。不必去掉路由的局部;