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

标签 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());

如果我不需要在完成时做某事,我会忽略那部分。如果我只想检查错误而不检查其他内容怎么办?

最佳答案

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

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

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

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

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

关于typescript - 我需要帮助理解 RxJx 订阅语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38835934/

相关文章:

javascript - 我如何让 TestScheduler 在 RxJs5 中打勾?

typescript - 为什么不能将接口(interface)分配给 Record<string, unknown>?

javascript - Typescript:访问装饰器声明中类的其他函数/属性

javascript - 检测点击是否在 react 组件内部或不在 typescript 中

javascript - RxJS Subject 是什么以及使用它们的好处?

javascript - 使用 takeUntil 模式取消订阅 Observables 时是否需要完成 Subject?

javascript - 将事件中的 Rx.Observable 与 pausable 一起使用不会运行订阅功能

html - Angular - Material 表,是否可以通过单击按钮来编辑行?

Angular 5 RxJs concatMap、switchMap、mergeMap 哪个?

events - RxJs:如何在预定义的时间发出事件?