Я использую оператор 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
?