Rx JS - То же самое без Subscription / BehaviorSubject? - PullRequest
2 голосов
/ 03 мая 2020

Я ищу альтернативный способ сделать:

import { interval, BehaviorSubject } from 'rxjs';

const source$ = interval(1000);
const store$ = new BehaviorSubject<number[]>([]);
source$.subscribe((point) => store$.next([...store$.value].concat(point)));

// result
store$.subscribe(console.log);

Я действительно хотел бы вообще не использовать подписку, и поэтому я предполагаю, что нет BehaviorSubject.

Спасибо за любую подсказку .

1 Ответ

3 голосов
/ 03 мая 2020

Вы можете использовать оператор сканирования.

const source$ = interval(1000);
const store$ = source$.pipe( // or simply interval(1000).pipe(
    scan((result, value) => [...result, value], []),
);

// result
store$.subscribe(console.log); // [0], [0, 1], ...
...