publishReplay faz uso de assunto de comportamento, em que pode armazenar os valores em buffer e reproduzir os mesmos para os novos assinantes e retorna ConnectableObservable. O método connect () deve ser usado para assinar o observável criado.
Sintaxe
publishReplay(value); // here value is the number of times it has to replay.
Exemplo
import { interval} from 'rxjs';
import { take, publishReplay} from 'rxjs/operators';
let observer = interval(1000).pipe(
take(3),
publishReplay(2)
);
const subscribe_one = observer.subscribe(
x => console.log("Value from Sub1 = "+x)
);
const subscribe_two = observer.subscribe(
x => console.log("Value from Sub2 = "+x)
);
observer.connect();
setTimeout(() => {
const subscribe_three = observer.subscribe(
x => console.log("Value from Sub3 = "+x)
);
}, 2000);
Resultado