【发布时间】:2021-11-23 00:24:02
【问题描述】:
这个问题建立在this one 之上,其中展示了如何将Observable 输入Subject。我的问题是类似的,但我想避免使Observable 变热,除非有必要,这样.pipe() 就不会不必要地运行。例如:
const subject$ = new Subject();
const mouseMove$ = Observable.fromEvent(document, 'mousemove')
.pipe(map(it => superExpensiveComputation(it)));
mouseMove$.subscribe(n => subject$.next(n));
由于订阅,这将使mouseMove$ 变得很热,并且superExpensiveComputation 将在每次鼠标移动时运行,无论是否有人在subject$ 上收听它。
如何在不不必要地运行superExpensiveComputation 的情况下将mouseMove$ 的结果输入subject$?
【问题讨论】:
-
你想达到什么目的?为什么不直接订阅
mouseMove$?
标签: rxjs