【问题标题】:Observable subscription - Ignore next method可观察订阅 - 忽略下一个方法
【发布时间】:2018-03-24 03:29:37
【问题描述】:

我不想对next() 方法做任何事情,我想处理error()complete()

这是我目前运行良好的解决方案:

this.myService.myServiceObservable(params)
  .subscribe(
    () => {
      /**/
    },
    error => {
      // Handling errors here
    },
    () => {
      // Handling `complete()` here
    }
  );

我觉得这个:() => { /**/ } 不是最优雅的解决方案。

任何人都知道如何获得相同的结果,但又不那么丑陋?我错过了什么吗?

【问题讨论】:

  • () => { 更改为succes=> { 或将其用于成功消息{ console.log(succes); }
  • 这不会改变。完成不是问题,是下一个。我不想处理下一个,但我无法删除它,否则它不会检测到 error()。
  • 抱歉编辑了一点。
  • 是一样的。我可以把我想要的名字。问题是必须有 3 个处理程序,1 个用于 next(),1 个用于 error(),1 个用于 complete()。我想处理最后两个,但为了接触到它们,我需要在第一个中做一些事情,一个空的评论现在可以解决问题,但我不喜欢它。
  • 是的,我用它来记录日志。

标签: javascript angular ecmascript-6 rxjs observable


【解决方案1】:

您可以使用undefined 代替通知处理程序:

.subscribe(undefined,
  err => { ... },
  () => { ...}
);

或者你可以传递所谓的“PartialObserver”对象,它只有你想要的通知的处理程序:

.subscribe({
  error: err => { ... },
  complete: () => { ...}
});

【讨论】:

  • 谢谢,第二个选项看起来很优雅。 :D
猜你喜欢
  • 2021-06-14
  • 1970-01-01
  • 2016-06-26
  • 1970-01-01
  • 2017-10-31
  • 2018-04-29
  • 2017-04-23
  • 2016-06-10
  • 1970-01-01
相关资源
最近更新 更多