LxStream<T>.defer constructor

LxStream<T>.defer(
  1. Stream<T> factory(), {
  2. T? initial,
  3. LxStreamCompletionPolicy completionPolicy = LxStreamCompletionPolicy.close,
})

Creates an LxStream that lazily generates its underlying stream using factory whenever it becomes active. This is strictly required for safely recreating single-subscription operations like .map when an LxStream re-activates.

Implementation

factory LxStream.defer(
  Stream<T> Function() factory, {
  T? initial,
  LxStreamCompletionPolicy completionPolicy = LxStreamCompletionPolicy.close,
}) {
  return LxStream<T>._internal(
    _LxAsyncVal.initialStatus<T>(initial),
    factory,
    completionPolicy,
  );
}