forkJoin не работает должным образом с большим количеством вызовов?

#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’); но та же проблема..