### Function

# Dex FutureCallback

unstable since: 1

#### Declaration

    DexFuture*
    (* DexFutureCallback) (
      DexFuture* future,
      gpointer user_data
    )

#### Description [src]

A `DexFutureCallback` can be executed from a `DexBlock` as response to another `DexFuture` resolving or rejecting.

The callback will be executed within the scheduler environment the block is created within when using dex_future_then(), dex_future_catch(), dex_future_finally(), dex_future_all(), and similar functions.

This is the expected way to handle completion of a future when not using `DexFiber` via dex_scheduler_spawn().

Available since: 1

#### Parameters

`future`

  Type: `DexFuture`

  A resolved or rejected `DexFuture`.

  The data is owned by the caller of the function.

`user_data`

  Type: `gpointer`

  Closure data associated with the callback.

  The argument can be `NULL`.
  The data is owned by the caller of the function.

#### Return value

Type: `DexFuture`

A `DexFuture` or `NULL`.

The caller of the function takes ownership of the data, and is responsible for freeing it.
The return value can be `NULL`.