Observables push their data through asynchronously, and I'm interested in how they compare to their counterpart which pulls data, namely an async iterable.
I came across this ReactiveX article
You can think of the Observable class as a “push” equivalent to Iterable, which is a “pull.” With an Iterable, the consumer pulls values from the producer and the thread blocks until those values arrive. By contrast, with an Observable the producer pushes values to the consumer whenever values are available. This approach is more flexible, because values can arrive synchronously or asynchronously.
Particularly, I don't understand that last quoted line. Could someone please explain that supposed advantage of pushing?