Defer Observable
Rocket.defer — Functiondefer(::Type{D}, factoryFn::F) where { D, F <: Function }Creates an Observable that, on subscribe, calls an Observable factory to make an Observable for each new Observer.
Arguments
T: type of output data source, created by thefactoryFnfactoryFn: the Observable factory function to invoke for each Observer that subscribes to the output Observable
Examples
using Rocket
source = defer(Int, () -> from([ 1, 2, 3 ]))
subscribe!(source, logger())
;
# output
[LogActor] Data: 1
[LogActor] Data: 2
[LogActor] Data: 3
[LogActor] CompletedSee also: Subscribable, subscribe!, logger
Description
defer allows you to create the Observable only when the Actor subscribes, and create a fresh Observable for each Actor. It waits until an Actor subscribes to it, and then it generates an Observable, typically with an Observable factory function. It does this afresh for each subscriber, so although each subscriber may think it is subscribing to the same Observable, in fact each subscriber gets its own individual Observable.