是否需要调用unsubscribe for RxJS first()

是否需要调用unsubscribe for RxJS first(),rxjs,rxjs5,Rxjs,Rxjs5,在以下代码中:- RxJS.Observable.of(1,2).first().subscribe((x) => console.log(x);); 鉴于操作员first() 另外,subscribe()接受三个参数,最后一个是完整的回调。运行以下代码将输出1,后跟“done” Rx.Observable.of(1) .subscribe( (x) => console.log(x), // next (x) => console.error(x), /

在以下代码中:-

RxJS.Observable.of(1,2).first().subscribe((x) => console.log(x););
鉴于操作员
first()

另外,
subscribe()
接受三个参数,最后一个是完整的回调。运行以下代码将输出1,后跟“done”

Rx.Observable.of(1)
  .subscribe(
  (x) => console.log(x),    // next
  (x) => console.error(x),  // error
  () => console.log('done') // done
)

对于提供的示例,您不需要
取消订阅
,也不需要调用
first
,因为
可观察到(1)
的第一个(和最后一个)值发出后实际完成。

否。它在调用
first()
后自动取消订阅。当前语法为
observable.pipe(first()).subscribe(func)用于RxJS 6

各国:

如果在没有参数的情况下调用,
first
发出源可观测值的第一个值,然后完成


更改为1,2,但您的答案仍然正确,因为您提到它已完成。如果您缺少一个
:)当源observable从未发出值时会发生什么情况,这是否意味着订阅保留在那里并可能会造成内存泄漏?@Gagan是的,它可能会造成内存泄漏。那么在这种情况下如何添加取消订阅?