rxjs - Нажмите против подписки - PullRequest
0 голосов
/ 23 мая 2019

Во многих статьях я считаю, что оператор tap - это хороший способ побочных эффектов. Мой вопрос о разнице между выполнением побочных эффектов с помощью подписки и нажатия. Вот примеры, которые делают то же самое:

        this.store$
           .pipe(tap(x => {
               this.store = x;
           }));

        this.store$
           .subscribe(x => {
              this.store = x;
           });

Есть ли разница в производительности или есть причина использовать один из этих подходов?

1 Ответ

0 голосов
/ 27 мая 2019

В угловом контексте. У вас может быть компонент, скажем, MyComponent. Также есть сервис для этого компонента MyService. Этот сервис отвечает за некоторые сложные операции в MyComponent. Теперь вы сделаете подписку в MyComponent как

$myObs.subscribe((val) => //do something );

Но те же данные могут потребоваться и в вашем сервисе, поэтому вы определяете их в сервисе как

$myObs.pipe(tap((val) => // do something with data in service));

Подписка будет осуществляться в компоненте, но с помощью касания вы также можете назначить переменную-член данных в вашем сервисе.

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