---
title: PendingRequestHandle
summary: A handle to a pending asynchronous request returned by RequestHandle::sendasync() or RequestHandle::sendasync_streaming().
url: https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/struct.PendingRequestHandle/
---

**Kind:** Struct  
**Module:** [handle](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/)  
**Package:** fastly 0.13.1  
**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#22

```rust
pub struct PendingRequestHandle { /* private fields */ }
```

A handle to a pending asynchronous request returned by
[`RequestHandle::send_async()`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/struct.RequestHandle/#method-send_async) or
[`RequestHandle::send_async_streaming()`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/struct.RequestHandle/#method-send_async_streaming).

A handle can be evaluated using [`PendingRequestHandle::poll()`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/struct.PendingRequestHandle/#method-poll),
[`PendingRequestHandle::wait()`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/struct.PendingRequestHandle/#method-wait), or [`select_handles()`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/fn.select_handles/). It
can also be discarded if the request was sent for effects it might have, and the response is
unimportant.

## Methods

### append_response_header

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#93

```rust
fn append_response_header(&self, name: impl ToHeaderName, value: impl ToHeaderValue, target: PendingResponseKind)
```

Append a header on the `Response` once it is ready, leaving any existing entries of the
same name in place.

**Parameters**

- `self`: `&Self`
- `name`: `impl ToHeaderName`
- `value`: `impl ToHeaderValue`
- `target`: `PendingResponseKind`

### as_u32

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#78

```rust
fn as_u32(&self) -> u32
```

Get the underlying representation of the handle.

This should only be used when calling the raw ABI directly, and care should be taken not to
reuse or alias handle values.

**Parameters**

- `self`: `&Self`

**Returns**

`u32`

### poll

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#197

```rust
fn poll(self) -> PollHandleResult
```

Try to get the result of a pending request without blocking.

This function returns immediately with a [`PollHandleResult`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/enum.PollHandleResult/); if you want to block until a
result is ready, use [`wait()`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/struct.PendingRequestHandle/#method-wait).

**Parameters**

- `self`: `Self`

**Returns**

`PollHandleResult`

### remove_response_header

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#148

```rust
fn remove_response_header(&self, name: impl ToHeaderName, target: PendingResponseKind)
```

Remove a header from the `Response` once it is ready.

**Parameters**

- `self`: `&Self`
- `name`: `impl ToHeaderName`
- `target`: `PendingResponseKind`

### send_to_client

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#187

```rust
fn send_to_client(self)
```

Move processing of the [PendingRequestHandle](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/struct.PendingRequestHandle/) to the background and forward its
eventual response to the downstream client.

If an error is encountered while sending the request (for example, a
[SendErrorCause::ConnectionRefused](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/http/request/enum.SendErrorCause/) due to the server being unavailable), then
an appropriate 5XX response will be sent instead.

Using this allows the sandbox to terminate early so that its resources may be freed
up for other incoming requests.

**Parameters**

- `self`: `Self`

### set_response_header

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#121

```rust
fn set_response_header(&self, name: impl ToHeaderName, value: impl ToHeaderValue, target: PendingResponseKind)
```

Set a header on the `Response` once it is ready, replacing any existing entries of the same
name.

**Parameters**

- `self`: `&Self`
- `name`: `impl ToHeaderName`
- `value`: `impl ToHeaderValue`
- `target`: `PendingResponseKind`

### wait

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#245

```rust
fn wait(self) -> Result<(ResponseHandle, BodyHandle), SendErrorCause>
```

Block until the result of a pending request is ready.

If you want check whether the result is ready without blocking, use
[`poll()`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/handle/struct.PendingRequestHandle/#method-poll).

**Parameters**

- `self`: `Self`

**Returns**

`Result<(ResponseHandle, BodyHandle), SendErrorCause>`

## Trait implementations

### impl Debug for PendingRequestHandle

#### fmt

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#19

```rust
fn fmt(&self, f: &mut Formatter<'_>) -> Result
```

**Parameters**

- `self`: `&Self`
- `f`: `&mut $crate::fmt::Formatter`

**Returns**

`$crate::fmt::Result`

### impl From<PendingRequest> for PendingRequestHandle

#### from

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#27

```rust
fn from(pr: PendingRequest) -> Self
```

**Parameters**

- `pr`: `PendingRequest`

**Returns**

`Self`

### impl Hash for PendingRequestHandle

#### hash

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#20

```rust
fn hash<__H: Hasher>(&self, state: &mut __H)
```

**Parameters**

- `self`: `&Self`
- `state`: `&mut __H`

### impl PartialEq for PendingRequestHandle

#### eq

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request/pending/handle.rs#20

```rust
fn eq(&self, other: &Self) -> bool
```

**Parameters**

- `self`: `&Self`
- `other`: `&Self`

**Returns**

`bool`

## Auto trait implementations

- `Freeze`
- `RefUnwindSafe`
- `Send`
- `Sync`
- `Unpin`
- `UnsafeUnpin`
- `UnwindSafe`

## Blanket implementations

- `Any`
- `Borrow<T>`
- `BorrowMut<T>`
- `Downcast`
- `DowncastSync`
- `Equivalent<K>`
- `ErasedDestructor`
- `From<T>`
- `Into<U>`
- `IntoEither`
- `Same`
- `TryFrom<U>`
- `TryInto<U>`
