2016-02-06 22 views
9

Secondo RxJS 5 MIGRATION.md è stato rimosso shareReplay().shareReplay in RxJS 5

  1. Perché?
  2. .publishReplay(1).refCount() replica fedelmente il comportamento? Fondamentalmente ho bisogno di riprodurre il singolo set di dati più recente a tutti i nuovi abbonati.

risposta

8

La risposta breve: Citando Sir Blesh:

I RxJS problematici 5 sta cercando di risolvere è che ConnectableObservables dovrebbero essere "reconnectable", e refCount dovrebbero restituire un osservabile che è freddo fino sottoscritto, quindi caldo fino al termine di tutti gli abbonamenti , quindi di nuovo freddo.

Il problema è quello del comportamento dei soggetti dopo il completamento che impedisce il ricollegamento di un osservabile collegabile una volta completato.

La risposta lunga: https://github.com/ReactiveX/RxJS/issues/453

L'API corrente sembra essere il risultato di un compromesso tra due visioni del problema riconnessione. Sarebbe bello se le persone coinvolte potessero fare un riassunto delle questioni a portata di mano. La mia comprensione è che .publishReplay(1).refCount() dovrebbe mantenere il vecchio comportamento, ovvero che quando il numero di abbonati raggiunge 0, la fonte viene disconnessa e non è possibile riprodurla. Ma non credetemi, provatelo, mi sono perso dopo la discussione.