At the beginning of this chapter, we observed that different
Observable objects emit events on different threads. A synchronous
Observable object emits on the caller thread when
subscribe gets invoked. The
Observable.timer object emits events asynchronously on threads internally used by Rx. Similarly, events in
Observable objects created from
Future objects are emitted on
ExecutionContext threads. What if we want to use an existing
Observable object to create another
Observable object bound to a specific thread?
To encapsulate the choice of the thread on which an
Observable object should emit events, Rx defines a special class called
Scheduler class is similar to the
ExecutionContext interfaces we saw in ...