Коллекция Mergemap Angular + Firestore - PullRequest
0 голосов
/ 16 марта 2019

Я начинаю использовать угловой и мне нужна помощь, чтобы решить эту проблему.Я использую базу данных firestore.

  getDiveSitesFrequentation(userId: string): void {
   this.getDives(userId)
    .pipe(map(dives => mergeMap(
     (dive: Dive) => this.diveSiteService.getDiveSite(dive.dive_site)
     .pipe(map(diveSite => { return dive.number + ' ' + diveSite.name }))
     ))).subscribe(v => console.log(v))

Мне нужен журнал консоли, возвращающий массив строк с номером погружения и именем места погружения.

, но этот код возвращает только карту слиянияфункция.

Кто-нибудь может мне помочь по этому поводу?

Заранее спасибо.

1 Ответ

0 голосов
/ 16 марта 2019

Вы были на правильном пути, я полагаю, что это даст вам то, что вы хотите:

  import { combineLatest } from 'rxjs';

  ...

  this.getDives(userId)
    .pipe(
      mergeMap(dives => {
        const diveSiteStringObservables = dives.map(
          (dive: Dive) => {
            return this.diveSiteService.getDiveSite(dive.dive_site)
              .pipe(
                map(diveSite => {
                  return dive.number + ' ' + diveSite.name;
                })
              );
          }
        );
        return combineLatest(diveSiteStringObservables);
      })
    ).subscribe(v => console.log(v));

Ключ в том, чтобы использовать функциюlateLatest () для объединения массива Observables в один Observable, возвращающий массив.

...