У меня есть функция, которая возвращает наблюдаемый, который автоматически отписывается, когда какая-то внутренняя вещь происходит, используя Предмет. Вот простая версия, в которой показана проблема:
const subject = new Subject();
const source = fromEvent(document.querySelector("h1"), "click").pipe(
takeUntil(subject)
);
fromEvent(document.querySelector("p"), "click").subscribe(() => {
subject.next();
});
Проблема в том, что если кто-то подписывается source
и использует наблюдаемый более высокий порядок, он не будет подписываться из внутренней наблюдаемой, когда Subject
испускает :
source.pipe(mergeMap(() => interval(1000))).subscribe(x => console.log(x));
Есть способ решить эту проблему, не заставляя потребителя звонить unsubscribe
?