У меня есть следующий распознаватель, который вызывает 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]
},
Проблема в том, что распознаватель получаетв бесконечном цикле.В чем здесь проблема?