---
title: Publishers.TryReduce
framework: combine
role: symbol
role_heading: Structure
path: combine/publishers/tryreduce
---

# Publishers.TryReduce

A publisher that applies an error-throwing closure to all received elements and produces an accumulated value when the upstream publisher finishes.

## Declaration

```swift
struct TryReduce<Upstream, Output> where Upstream : Publisher
```

## Topics

### Creating a try-reduce publisher

- [init(upstream:initial:nextPartialResult:)](combine/publishers/tryreduce/init(upstream:initial:nextpartialresult:).md)

### Declaring supporting types

- [Publishers.Output](combine/publishers/output.md)
- [Publishers.TryReduce.Failure](combine/publishers/tryreduce/failure.md)

### Inspecting publisher properties

- [upstream](combine/publishers/tryreduce/upstream.md)
- [initial](combine/publishers/tryreduce/initial.md)
- [nextPartialResult](combine/publishers/tryreduce/nextpartialresult.md)

## Relationships

### Conforms To

- [Publisher](combine/publisher.md)

## See Also

### Reducing elements

- [Publishers.Collect](combine/publishers/collect.md)
- [Publishers.CollectByCount](combine/publishers/collectbycount.md)
- [Publishers.CollectByTime](combine/publishers/collectbytime.md)
- [Publishers.TimeGroupingStrategy](combine/publishers/timegroupingstrategy.md)
- [Publishers.IgnoreOutput](combine/publishers/ignoreoutput.md)
- [Publishers.Reduce](combine/publishers/reduce.md)
