lazyFutureSource

Defers creation and materialization of a Source until there is demand.

Source operators

Signature

def lazyFutureSource[T, M](create: () => Future[Source[T, M]]): Source[T, Future[M]]

Description

Invokes the user supplied factory when the first downstream demand arrives. When the returned future completes successfully the source switches over to the new source and emits downstream just like if it had been created up front.

Note that asynchronous boundaries (and other operators) in the stream may do pre-fetching which counter acts the laziness and will trigger the factory immediately.

See also lazySource.

Reactive Streams semantics

emits depends on the wrapped Source

completes depends on the wrapped Source

Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.