我有以下调用 api 服务的解析器。根据我回来的结果,我想将用户重定向到特定屏幕:
@Injectable()
export class TenantStatusResolver implements Resolve<any> {
tenantStatus: OnboardStatusEnum = OnboardStatusEnum.TenantyType;
constructor(
private _httpClient: HttpClient,
private _router: Router) {
}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> | Promise<any> | any {
if (this.tenantStatus === OnboardStatusEnum.Completed) {
return;
}
return new Promise((resolve, reject) => {
this._httpClient.get(environment.api.onboarding.tenantStatus).subscribe((response: TenantOnboardStatusDto) => {
this.tenantStatus = response.onboardStatus;
this._router.navigate(["/main/onboarding/tenant-type"]);
resolve();
}, reject);
});
}
}
在我的 main.module.ts 我有
const routes = [
{
path: '',
resolve: {
tenantStatus: TenantStatusResolver
},
children: [
{
path : 'onboarding',
loadChildren: './onboarding/onboarding.module#OnboardingModule',
canLoad: [AuthenticationRouteGuard]
},
问题是解析器陷入无限循环。这里有什么问题?