AFAIK,可观察是懒惰的。
import * as rxjs from 'rxjs'
const { filter, take, map } = rxjs.operators
function awesomeOpators() {
return take(1);
}
const numbers$ = new rxjs.Subject<number>();
const start$ = numbers$.pipe(
awesomeOpators(),
);
numbers$.next(1);
start$.subscribe((val) => {
// outputs 2
console.log(val)
})
numbers$.next(2)
如何重写awesomeOpators
以使beginWithLargeNumbe$
以1开头?
https://stackblitz.com/edit/rxjs-zqkz7r?file=main.ts
答案 0 :(得分:0)
您可以使用ReplaySubject:
const numbers$ = new rxjs.ReplaySubject<number>();
还有其他一些方法。但是,您还没有告诉我们哪些部分可以控制或无法控制,所以这样做。