web-dev-qa-db-ja.com

RxJSの移行5から6-TakeUntilでサブスクライブを解除する

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でサブスクライブを解除する最良の方法です

8
Juri
import { takeUntil } from 'rxjs/operators';

.pipe(takeUntil(this.destroyed$)).subscribe({YOUR_CODE})

これは役立つはずです。

9
Paresh Varde