Метод .pipe
используется для объединения наблюдаемых операторов, и вы всегда будете получать полученные данные. Кроме того, метод pipe позволяет веб-пакету удалять неиспользуемые операторы из окончательного пакета JavaScript. Это облегчает создание небольших файлов.
.tap
прозрачно выполняет действия или побочные эффекты, такие как ведение журнала. Он не изменяет поток.
.subscribe
будет вызываться только один раз и используется для подписки на наблюдаемый ответ. Более того, мы можем поместить ответ в некоторую переменную, чтобы отобразить его в виде.
Лучше использовать async
pipe для шаблона:
<option *ngFor="let item of items$ | async">
{{ item?.name }}
</option>
Для назначения данных из бэкэнда,Вы можете использовать subscribe()
метод:
this.yourService.getYourData()
.subscribe(val =>
this.items = val
);
Комментарий исходного кода метода tap()
гласит:
Этот оператор полезен для отладкиваши Observables для правильных значений или выполнения других побочных эффектов.
Примечание: это отличается от subscribe
на Observable. Если наблюдаемая, возвращаемая tap
, не подписана, побочные эффекты, указанные наблюдателем, никогда не произойдут. tap
поэтому просто следит за существующим исполнением, не запускает выполнение, как subscribe
делает .
Так что лучше использовать метод subscribe
дляназначайте данные, потому что:
- Ваш окончательный комплект JavaScript будет более легким и не будет иметь
tap
method - Если Observable, возвращаемое
tap
, не подписано, побочные эффектыуказанный Наблюдателем никогда не произойдет. Так что в любом случае вам нужно вызвать метод subscribe
. Поэтому нет необходимости использовать метод tap
, если вы хотите просто назначить данные