#angular #typescript
#angular #typescript
Вопрос:
Я поместил два метода в forkJoin, но он не вызывает api, если я добавлю оба, он ничего не вернет из серверного api, но если я добавлю некоторые из них из forkJoin, все будет работать хорошо. Я получил сообщение об ошибке, когда у меня есть два вызова в forkJoin. Это фрагмент кода:
ngOnInit(): void {
this.spinner.show();
this.route.paramMap.subscribe
(
paramMap => {
this.inviteToken = paramMap.get('inviteToken');
});
forkJoin([
this.inviteService.getClientTheme(this.inviteToken),
this.inviteService.getUserAuthenticationProfiles(this.inviteToken)]
).subscribe(([clientTheme, authenticationProfiles]) => {
this.clientTheme = clientTheme;
this.localStorage.setClientTheme(this.clientTheme);
this.authenticationProfiles = authenticationProfiles;
},
errorMessage => {
this.error = errorMessage;
},
() => {
this.spinner.hide();
}
);
}
invite.service.ts
getClientTheme(inviteToken: string): Observable<IClientTheme> {
const reqUrl = 'clients/invites';
this.url = `${this.url}${reqUrl}/${inviteToken}`;
return this.get()
.pipe(catchError(this.errorHandlerService.handleError));
}
getUserAuthenticationProfiles(inviteToken: string): Observable<any> {
const reqUrl = 'consumers';
this.url = `${this.url}${reqUrl}/${inviteToken}`;
return this.get()
.pipe(catchError(this.errorHandlerService.handleError));
}
Комментарии:
1. Ну, вы назначаете inviteToken асинхронно, поэтому, скорее всего, вы не получаете ожидаемых результатов от BE, поскольку токен будет неопределенным.
2. @BerkKurkcuoglu Вы имеете в виду в этой части: this.route.paramMap.subscribe ( paramMap => { this.inviteToken = paramMap.get(‘inviteToken’); }); ?
3. Да, точно….
4. Да, я изменил его на this.inviteToken = this.route.snapshot.paramMap.get(‘inviteToken’); но та же проблема..