event all internal resources will be freed. To cancel production of sequence elements and free resources immediately, call dispose on the returned subscription. disposed(by: disposeBag) will automatically call dispose at deinit
operator, except that whenever a new item is emitted by the source Observable, it will unsubscribe the Observable that was generated from the previously-emitted item, and begin only mirroring the current one.
function that you specify to each item emitted by the source Observable, where that function returns an Observable that itself emits items. FlatMap then merges the emissions of these resulting Observables, emitting these merged results as its own sequence. Note that FlatMap merges the emissions of these Observables, so that they may interleave. In several of the language-specific implementations there is also an operator that does not interleave the emissions from the transformed Observables, but instead emits these emissions in strict order, often called ConcatMap or something similar. http://reactivex.io/documentation/operators/flatmap.html