У меня есть следующий код:
const source = interval(1000).pipe(
take(3),
finalize(() => console.log('complete')),
shareReplay({ bufferSize: 1, refCount: true}),
);
source.subscribe(x => console.log(x));
source.subscribe(x => console.log(x));
source.subscribe(x => console.log(x));
Теперь полный журнал вызывается один раз. Когда я перемещаю оператор finalize
, чтобы он был после shareReplay
, он вызывался три раза, что, я полагаю, приходится на каждого подписчика, но почему он так работает?
const source = interval(1000).pipe(
take(3),
shareReplay({ bufferSize: 1, refCount: true}),
finalize(() => console.log('complete')),
);
Оператор finalize
подписался на внутренний ReplaySubject
, который завершается один раз, нет?