如何从热的观察中创建一个渴望的观察者?

时间:2018-02-02 15:18:31

标签: javascript rxjs reactive-extensions-js

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

1 个答案:

答案 0 :(得分:0)

您可以使用ReplaySubject:

const numbers$ = new rxjs.ReplaySubject<number>();

还有其他一些方法。但是,您还没有告诉我们哪些部分可以控制或无法控制,所以这样做。