Как я могу вызвать два метода: первый возвращает void наблюдаемый, а второй возвращает наблюдаемый? - PullRequest
0 голосов
/ 23 мая 2019

Я вызываю два метода. complete () возвращает void наблюдаемый getDetails () возвращает наблюдаемый Я звоню второй на карте. Интересно, это правильный путь или есть другой путь?

Я вызвал метод complete (), который обновляет флаг как завершенный и возвращает void наблюдаемый. и мне нужно вызвать метод getDetails, который возвращает наблюдаемый.

this.dataService.complete(input)
.pipe(  
   map(() => {this.dataService.getDetails(id)
                  .subscribe((result) => {
                        console.log(result);
                   })
       })
).subscribe();

Я получаю результат, как и ожидалось, но я новичок в rxjs. Если это не так, пожалуйста, дайте мне знать правильный путь. Спасибо.

1 Ответ

1 голос
/ 23 мая 2019

Вам следует избегать вложенной подписки () Попробуйте использовать concatMap, mergeMap, switchMap и т. Д., Чтобы продолжить поток

this.dataService.complete(input)
.pipe(  
   switchMap(() => this.dataService.getDetails(id)),
   tap(result=>console.log(result))
).subscribe();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...