Как использовать ответ одного вызова API в forkJoin в качестве параметра для другого вызова API? - PullRequest
0 голосов
/ 27 февраля 2019

Я хочу сделать вызов c с ответом b в качестве параметра.Как это реализовать?

resolve(
            route: ActivatedRouteSnapshot,
            state: RouterStateSnapshot
        ): Observable<any> {

            let a = this.loginService.getApplicationCentre();
            let b = this.loginService.getLoginId();
            let c = this.loginService.getUserDetails(response of (b))

            let join = forkJoin(a, b, c).pipe(map((allResponses) => {
                return {
                    A: allResponses[0],
                    B: allResponses[1],
                    C: allResponses[2]
                };
            }));

            return join;

        }

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 27 февраля 2019

Это можно сделать следующим образом:

let a$ = this.loginService.getApplicationCentre();
let bc$ = this.loginService.getLoginId()
  .pipe(
    mergeMap(b => this.loginService.getUserDetails(b)
      .pipe(map(c => [b, c])))
  );
return forkJoin(a$, bc$).pipe(map(([A, [B, C]]) => ({ A, B, C })));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...