Applies an error-throwing closure that accumulates each element of a stream and publishes a final result upon completion.
SDKs
- iOS 13.0+
- macOS 10.15+
- Mac Catalyst 13.0+
- tvOS 13.0+
- watchOS 6.0+
- Xcode 11.0+
Framework
- Combine
Declaration
func tryReduce<T>(_ initialResult: T, _ nextPartialResult: @escaping (T, Upstream.Output) throws -> T) -> Publishers.Try Reduce<Publishers.Buffer<Upstream>, T>
Parameters
initialResult
The value the closure receives the first time it is called.
nextPartialResult
An error-throwing closure that takes the previously-accumulated value and the next element from the upstream publisher to produce a new value.
Return Value
A publisher that applies the closure to all received elements and produces an accumulated value when the upstream publisher finishes.
Discussion
If the closure throws an error, the publisher fails, passing the error to its subscriber.