Когда мы должны использовать оператор касания RxJS? - PullRequest
0 голосов
/ 21 января 2019

Я не понимаю из документов .Кто-нибудь может мне это объяснить?

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Большинство операторов работают в поточной последовательности, например:

source$.pipe(
  map((a: string) => changeAndReturnArray(a)),
  filter((b: string[]) => giveMeOnlySymbolsThatAreAfterNInAlphabet(b)),
  switchMap((c: string[]) => putToSomeObservable(c))
  ....
);

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

  • вызывать функции, которые вызовут некоторый побочный эффект, который может быть виден конечному пользователю (например, диалоговое окно отображения, показывать снэк-бар, перенаправить на другой маршрут (но, по моему мнению, таким способом не рекомендуется использовать tap))
  • диспетчеризация действий для хранилища (если вы используете какой-либо - например, хранилище ngrx)
  • debugвы -> console.log ()
  • все, что может рассматриваться как «побочный эффект» для вашего потока.

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

0 голосов
/ 21 января 2019

Вы можете использовать его для выполнения побочного эффекта, например.Или вы можете использовать его, чтобы увидеть текущее значение, которое передается, не влияя на / не изменяя Observable.Так что-то вроде console.log() но внутри потока.

...