Как я могу предоставить последнее значение hot observable on subscribe

у меня есть горячий наблюдаемый (из события), который я вызываю DistinctUntilChanged на котором будет несколько подписчиков, которые будут подписываться в разное время после того, как observable начал работать и произвел свое первое значение. Подписчики получат получение IObservable через свойство в моем классе.

как сделать так, чтобы каждый раз, когда кто-то подписывается на наблюдаемое, они получают последнее опубликованное значение, но наблюдаемые действия обычно иначе? Кажется, я ищу ... PublishLast но я не уверен, что у него есть другие побочные эффекты.

аналогичный вопрос: как получить IObservable, чтобы нажать новейшее значение при подписке? Это очень похожий вопрос, но это более года назад, и в Rx было сделано много дополнений, поэтому я думаю, что теперь может быть встроенная функция, а не полагаться на BehaviorSubject поэтому я не думаю, что это точная копия.

Edit: здесь is то, что я на самом деле пытаюсь сделать. Ниже фактической наблюдаемой последовательности, о которой я говорю, есть комментарий.

1 ответов


другой ответ был близок. Вы либо хотите ReplaySubject (1) ie только replay 1 значение; или вы хотите BehaviorSubject. Разница в том, что субъекту поведения потребуется значение по умолчанию. Это также гарантирует, что абонент всегда будет получать значение немедленно.

var replay1 = source.Replay(1);
replay1.Connect();
//Or
var alwaysHaveValue = source.Multicast(new BehaviorSubject<int>(-1));

чтобы понять каждый из предметов, проверьте мой введение в Rx в должности