2015-07-02 3 views
1

Есть ли какие-либо функциональные возможности для EventStream в ReactFX для кэширования последнего значения, чтобы его можно было переписать новым подписчикам? В RxJava Observable есть много процедур для выполнения этих задач. Я надеялся, что EventStream может иметь аналогичную функциональность ... если я не упускаю из виду причину, по которой я бы не хотел этого делать в графическом интерфейсе, и я должен придерживаться только парадигм публикации.ReactFX EventStreams и поведение воспроизведения?

EventStream<Boolean> selectedEvt = EventStreams.changesOf(selected.selectedProperty()) 
.map(v -> v.getNewValue()).cache(1); 

ответ

2

ReactFX не имеет таких. Идея состоит в том, что если вы хотите запомнить значение, используйте ObservableValue/Val вместо EventStream. Поверните ObservableValue/Val в EventStream, если необходимо. Ваш приведенный выше пример можно переписать более просто с помощью valuesOf:

EventStream<Boolean> selectedEvt = EventStreams.valuesOf(selected.selectedProperty()); 

Потоков, созданных valuesOf испускают текущее значение базового ObservableValue сразу после подписки, поэтому они имитируют поведение воспроизведения вы описываете.