我需要帮助理解RxJx订阅语法

时间:2016-08-08 18:17:15

标签: typescript rxjs rxjs5

这就是我现在正在做的事情,我想知道是否有更好的方法

this.dataService.subscribe(
    data => this.data = data,
    error => alert('Something went wrong'),
    () => this.doSomethingOnCompletion());

但是,如果我没有捕获数据,我可能只是改变三个函数中的第一个:

() => null,

documentation for rxjs 4.x对我来说不能很好地回答这个问题。 Version 5.x解释得更少。

那么,判决是什么?当我只需触发某些事情时,是否会出现以下错误?

this.dataService.subscribe(
    () => null,
    error => alert('Boom.'),
    () => this.doSomethingOnCompletion());

如果我在完成时不需要做某事,我就把这部分留下来。如果我只想检查错误而没有别的怎么办?

1 个答案:

答案 0 :(得分:4)

RxJS 4如果您只需要errors,那么您可以使用仅处理错误的subscribeOnError方法。

你也可以使用subscribe方法,但你只需要为你不想要的处理程序传递一个空值,你就不必通过你自己的noop。

this.dataService.subscribe(
    null,
    error => alert('Something went wrong'));

RxJS 5你可以传递一个所谓的PartialObserver

this.dataService.subscribe({
  error: error => alert('Boom.'), 
  complete: () => this.doSomethingOnCompletion()
})