在RXJS中,有没有办法省略.subscribe()上的res和err调用?

时间:2017-02-20 19:25:54

标签: rxjs

鉴于您订阅的观察点:

Observable.subscribe(
  (res) => {},
  (err) => {},
  () => {
    // do some thing on complete
  }
);

是否需要写(res)和(错误)?

原因是,我使用Observable.forkJoin([Observable1, Observable2]).subscribe,我只关心他们何时完成,也许他们会产生错误。

3 个答案:

答案 0 :(得分:2)

要省略下一个和错误函数,请为这些参数传递undefined

Rx.Observable
  .from([0, 1, 2])
  .subscribe(
    undefined,
    undefined,
    () => console.log("completed")
);

答案 1 :(得分:1)

我会选择使用.finally()运算符,而不是省略reserr回调。这样可以更好地传达你想要发生的事情。

Rx.Observable.forkJoin([obs1, obs2])
  .finally(() => console.log('done'))
  .subscribe();

请注意,不需要将回调传递给subscribe()

答案 2 :(得分:1)

如果我们至少谈论RxJS5,您还可以定义所需的特定订阅者方法。

Observable.subscribe(
  (res) => {},
  (err) => {},
  () => {
    // do some thing on complete
  }
);

变为

Observable.subscribe(
  complete: () => {
    // do some thing on complete
  }
);

作为旁注,可以明确定义的其他方法是下一步错误