RxJS 6:仅在完成时订阅

时间:2018-09-06 10:01:08

标签: javascript rxjs observable

我不在乎next()error()的值。我还需要在subscribe()函数中将空函数定义为回调吗?

5 个答案:

答案 0 :(得分:2)

您只能使用“ finally”方法在onComplete事件上进行绑定:-

myObservable.finally(onCompleteHandler);

您可以在这里查看它:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/finally.md

答案 1 :(得分:2)

您可以这样做

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

subscribe允许您传递具有next errorcomplete 3个属性的对象,这些属性指向相应的函数。每个属性都是可选的。

答案 2 :(得分:1)

在RxJS 6中,这会剥离complete旁边的所有通知,并且还会导致错误完成:

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

您仍然需要在undefined中为nexterror传递空函数或subscribe

答案 3 :(得分:1)

实际上,您可以仅使用以下内容而无需任何处理程序:

.subscribe()

但是这不能处理error通知(这些通知将被抛出到全局错误处理程序中),因此您可能还希望使用它来忽略所有错误:

.subscribe({ error: () => {} })

答案 4 :(得分:0)

您仍然可以设置

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

省略subscribe

的任何不需要的执行