# Struct actix_web::actix::actix::dev::fut::Then[−]

    #[must_use = "futures do nothing unless polled"]
    pub struct Then<A, B, F> where
        A: ActorFuture,
        B: IntoActorFuture<Actor = <A as ActorFuture>::Actor>,  { /* fields omitted */ }

Future for the `then` combinator, chaining computations on the end of another future regardless of its outcome.

This is created by the `Future::then` method.

## Trait Implementations

###

`impl<A, B, F> ActorFuture for Then<A, B, F> where A: ActorFuture, B: IntoActorFuture<Actor = <A as ActorFuture>::Actor>, F: FnOnce(Result<<A as ActorFuture>::Item, <A as ActorFuture>::Error>, &mut <A as ActorFuture>::Actor, &mut <<A as ActorFuture>::Actor as Actor>::Context) -> B,`

#### `type Item = <B as IntoActorFuture>::Item`

The type of value that this future will resolved with if it is successful. Read more

#### `type Error = <B as IntoActorFuture>::Error`

The type of error that this future will resolve with if it fails in a normal fashion. Read more

#### `type Actor = <A as ActorFuture>::Actor`

The actor within which this future runs

####

`fn poll( &mut self, act: &mut <A as ActorFuture>::Actor, ctx: &mut <<A as ActorFuture>::Actor as Actor>::Context ) -> Result<Async<<B as IntoActorFuture>::Item>, <B as IntoActorFuture>::Error>` |

####

`fn map<F, U>(self, f: F) -> Map<Self, F> where F: FnOnce(Self::Item, &mut Self::Actor, &mut <Self::Actor as Actor>::Context) -> U,` |

Map this future's result to a different type, returning a new future of the resulting type. Read more

####

`fn map_err<F, E>(self, f: F) -> MapErr<Self, F> where F: FnOnce(Self::Error, &mut Self::Actor, &mut <Self::Actor as Actor>::Context) -> E,` |

Map this future's error to a different error, returning a new future.

####

`fn drop_err(self) -> DropErr<Self>` |

Drop this future's error, returning a new future.

####

`fn from_err<E>(self) -> FromErr<Self, E> where E: From<Self::Error>,` |

Map this future's error to any error implementing `From` for this future's `Error`, returning a new future. Read more

####

`fn then<F, B>(self, f: F) -> Then<Self, B, F> where B: IntoActorFuture<Actor = Self::Actor>, F: FnOnce(Result<Self::Item, Self::Error>, &mut Self::Actor, &mut <Self::Actor as Actor>::Context) -> B,` |

Chain on a computation for when a future finished, passing the result of the future to the provided closure `f`. Read more

####

`fn and_then<F, B>(self, f: F) -> AndThen<Self, B, F> where B: IntoActorFuture<Error = Self::Error, Actor = Self::Actor>, F: FnOnce(Self::Item, &mut Self::Actor, &mut <Self::Actor as Actor>::Context) -> B,` |

Execute another future after this one has resolved successfully.

####

`fn timeout(self, timeout: Duration, err: Self::Error) -> Timeout<Self>` |

Add timeout to futures chain. Read more

###

`impl<A, B, F> Debug for Then<A, B, F> where A: Debug + ActorFuture, B: Debug + IntoActorFuture<Actor = <A as ActorFuture>::Actor>, F: Debug, <B as IntoActorFuture>::Future: Debug,`

####

`fn fmt(&self, f: &mut Formatter) -> Result<(), Error>` |

Formats the value using the given formatter. Read more

## Auto Trait Implementations

###

`impl<A, B, F> Send for Then<A, B, F> where A: Send, F: Send, <B as IntoActorFuture>::Future: Send,`

###

`impl<A, B, F> Sync for Then<A, B, F> where A: Sync, F: Sync, <B as IntoActorFuture>::Future: Sync,`

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)