Generally, an observable is something whose changes can be observed.
In JavaFX, an Observable
is used to represent a state of UI. With its subclass Property
we can manually getValue
and setValue
and then its value and other subscribed values are updated accordingly.
I am new to RxJava. However from what I have learned, an Observable
is more like a lazy list whose elements are generated when needed, but how they are generated is determined when creating the Observable
and it's not subject to later change.
What are the connections and differences between the two? Is it possible to replace one with the other?
And understanding them in 2 different ways also makes the definitions of some functional transformations ambiguous. For example, when combining observables we might use bind
/flatMap
or zip
. (also see this related question) For a state, in the sense of functional reactive programming, the result represents the current combined and then transformed state, which just depends on the current state of its 2 dependencies. For a lazy list, flatMap
creates the cartesian product of 2 lists and transforms them, and zip
pairs 2 lists by order instead of by current state or time.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…