4

我想取消订阅 observable,我应该使用 first() 运算符取消订阅吗?

下面的例子,

Rx.Observable.interval(100)
.do(x => console.log(x))
.first()
.subscribe(x => x);

上面的代码是会自动退订还是需要做什么?

4

2 回答 2

3

first() 运算符采用可选的谓词函数,并在源完成时没有匹配的值时发出错误通知。

无论先发出什么,它都会取消订阅。所以要回答你的问题,你不需要做任何事情。它将取消订阅。

Angular 2 使用 RxJS - take(1) vs first()

于 2018-02-27T23:56:11.580 回答
0

The example that you have given is unsubscribed automatically after the first value is submitted. Use bellow example

Rx.Observable.interval(100)
.first()
.subscribe(
  x => { 
   console.log(x)
 }, err => {
   console.log("error")
 }, () => {
   console.log("Completed");
});

Normally first() operator is used to get the first value of a sequence. I'm not sure whether we can use it for everywhere when we want to unsubscribe.

于 2018-02-27T14:18:22.030 回答