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 曾经解决了这个问题。不必去掉路由的局部;
发表回复