在RxJS 6中取消订阅的最佳方式是什么?
我的老' RxJS 5代码看起来很
export class MyComponent implements OnInit, OnDestroy {
private ngUnsubscribe: Subject<any> = new Subject();
this.myService.myEventEmitter
.takeUntil(this.ngUnsubscribe)
.subscribe(this.onDataPolling.bind(this));
public ngOnDestroy(): void {
this.ngUnsubscribe.next();
this.ngUnsubscribe.complete();
}
}
在迁移到RxJS 6时,我运行rxjs-5-to-6-migrate
并获得
this.myService.myEventEmitter.pipe(
takeUntil(this.ngUnsubscribe))
.subscribe(this.onDataPolling.bind(this));
但这不起作用,因为EventEmitter没有管道方法。
在RxJS 6中取消订阅的最佳方式是什么?
编辑:这在干净安装后确实有效,是在RxJS 6中取消订阅的最佳方式。
答案 0 :(得分:7)
import { takeUntil } from 'rxjs/operators';
.pipe(takeUntil(this.destroyed$)).subscribe({YOUR_CODE})
这应该有帮助。
答案 1 :(得分:-2)
this.ngUnsubscribe.complete();
收件人
this.ngUnsubscribe.unsubscribe();