Запустите наблюдаемое, когда другой издаст, верните оба результата - PullRequest
0 голосов
/ 06 марта 2019

У меня есть следующий код:

dialog.afterClosed()
      .pipe(
        filter((result) => result),
        mergeMap((result) => this.unitService.importPack(result.file))
      )
      .subscribe((result) => {
        console.log(result); // I need the result of both, not only the mergeMap result
        this.updateStateAfterUpload(result.file, 'imported');
      });

Проблема здесь в том, что result в моей подписке является результатом наблюдаемого, возвращенного в моем операторе mergeMap, но мне действительно нужно использовать оба - один, возвращенный из моей afterClosed() наблюдаемой И возвращенный оператором mergeMap.

Как я могу вернуть результат обеих наблюдаемых в моей подписке?

1 Ответ

2 голосов
/ 06 марта 2019
dialog.afterClosed().pipe(
  mergeMap(result1 => this.unitService.importPack(result.file).pipe(
    map(result2 => ({ result1, result2 }))
  ))
).subscribe(({ result1, result2 }) => { ... });

Отобразите результат второго запроса, чтобы получить желаемый результат. Здесь я возвращаю объект типа { result1: any, result2: any }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...