RxJS 6:仅订阅onComplete

12

我不关心next()error()的值。在subscribe()函数中,我是否仍需要定义空函数作为回调函数?

5个回答

15

你可以像这样做

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

subscribe 允许您传递一个包含3个属性的对象,nexterrorcomplete,它们分别指向相应的函数。每个属性都是可选的。


4
事实上,您可以仅使用以下内容而无需任何处理程序:
.subscribe()

然而,这并不处理 error 通知(这些将被抛到全局错误处理程序),所以您可能还想使用以下内容来忽略所有错误:

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

2
在 RxJS 6 中,这将除了 complete 之外的所有通知都去掉,并且还会在出错时完成:
obs$.pipe(
    ignoreElements(),
    catchError(() => EMPTY))
.subscribe(null, null, _ => console.log("complete"));

在您的subscribe中,仍需要传递空函数或undefinednexterror参数。


1

5
这将触发observer.error()和observer.complete()。 - user10324719
2
请注意,finally不会触发myObservable的执行。您仍然需要在最后订阅它。 - ggradnig
类型 Observable 上不存在方法。 - JesseBoyd

0

您仍然可以设置

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

省略任何不必要的subscribe执行


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接