RxJS 6: подписаться только на Завершить - PullRequest
0 голосов
/ 06 сентября 2018

Меня не волнуют значения next() или error().Нужно ли мне определять пустые функции как обратные вызовы в функции subscribe()?

Ответы [ 5 ]

0 голосов
/ 06 сентября 2018

На самом деле вы можете использовать только следующее без какого-либо обработчика:

.subscribe()

Однако это не обрабатывает error уведомления (они будут отправлены в глобальный обработчик ошибок), поэтому вы можете использовать это, чтобы игнорировать все ошибки:

.subscribe({ error: () => {} })
0 голосов
/ 06 сентября 2018

Вы можете сделать что-то вроде этого

subscribe({
  complete: () => { // do the stuff you need to do on completion }
})

subscribe позволяет передавать объект с 3 свойствами, next error и complete, которые указывают на соответствующие функции. Каждое из этих свойств является необязательным.

0 голосов
/ 06 сентября 2018

В RxJS 6 это удалит все уведомления рядом с complete, а также приведет к завершению при ошибке:

obs$.pipe(
    ignoreElements(),
    catchError(() => EMPTY))
.subscribe(null, null, _ => console.log("complete"));

Вам все еще нужно передать пустые функции или undefined для next и error в вашем subscribe.

0 голосов
/ 06 сентября 2018

вы все еще можете установить

.subscribe(undefined, undefined, () => {/* On complete */})

, чтобы пропустить все ненужные исполнения subscribe

0 голосов
/ 06 сентября 2018

Вы можете привязать только событие onComplete с помощью метода finally: -

myObservable.finally(onCompleteHandler);

Вы можете посмотреть здесь: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/finally.md

...