Rx JS takeUntil до наблюдаемого более высокого порядка - PullRequest
0 голосов
/ 28 апреля 2020

Я использую оператор takeUntil до наблюдаемого более высокого порядка:

import { of, Subject, fromEvent, interval } from "rxjs";
import { takeUntil, mergeMap } from "rxjs/operators";

const subject = new Subject();

const source = fromEvent(document.querySelector("h1"), "click");

fromEvent(document.querySelector("p"), "click").subscribe(() => {
  subject.next();
});

source
  .pipe(
    takeUntil(subject),
    mergeMap(() => interval(1000))
  )
  .subscribe(x => console.log(x));

Но у нас этот код, у меня утечка памяти, потому что она не отписывается от interval. Я могу переместить его в конец цепочки, но это подвержено ошибкам. Разработчики могут легко сделать эту ошибку. Есть ли способ сохранить это, например, так и отписаться от interval?

...