Как я могу создать страстную наблюдаемость из горячей наблюдаемой?

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 ответ

Вы можете использовать ReplaySubject вместо:

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

Есть множество других способов. Вы не сказали нам, какую часть вы можете или не можете контролировать, так что это подойдет.

Другие вопросы по тегам