| SourceOperationsExpandTOut1, TOut2, TMat Method |
Allows a faster downstream to progress independently of a slower publisher by extrapolating elements from an older
element until new element comes from the upstream. For example an expand step might repeat the last element for
the subscriber until it receives an update from upstream.
This element will never "drop" upstream elements as all elements go through at least one extrapolation step.
This means that if the upstream is actually faster than the upstream it will be backpressured by the downstream
subscriber.
Expand does not support
Restart and
Resume.
Exceptions from the
extrapolate function will complete the stream with failure.
Emits when downstream stops backpressuring
Backpressures when downstream backpressures
Completes when upstream completes
Cancels when downstream cancels
Namespace:
Akka.Streams.Dsl
Assembly:
Akka.Streams (in Akka.Streams.dll) Version: 1.2.3.42 (1.2.3.42)
Syntax public static Source<TOut2, TMat> Expand<TOut1, TOut2, TMat>(
this Source<TOut1, TMat> flow,
Func<TOut1, IEnumerator<TOut2>> extrapolate
)
[<ExtensionAttribute>]
static member Expand :
flow : Source<'TOut1, 'TMat> *
extrapolate : Func<'TOut1, IEnumerator<'TOut2>> -> Source<'TOut2, 'TMat>
Parameters
- flow
- Type: Akka.Streams.DslSourceTOut1, TMat
TBD - extrapolate
- Type: SystemFuncTOut1, IEnumeratorTOut2
Takes the current extrapolation state to produce an output element and the next extrapolation state.
Type Parameters
- TOut1
- TBD
- TOut2
- TBD
- TMat
- TBD
Return Value
Type:
SourceTOut2,
TMatTBD
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type
SourceTOut1,
TMat. When you use instance method syntax to call this method, omit the first parameter. For more information, see
Extension Methods (Visual Basic) or
Extension Methods (C# Programming Guide).
See Also