# Asap

This interface defines the helper methods around a Conan Asap

```typescript
export interface Asap<T> {
    catch(error: IConsumer<Error>): this;

    then(consumer: IConsumer<T>): this;

    onCancel(consumer: ICallback): this;

    map<Z>(mapper: IFunction<T, Z>): Asap<Z>;

    chain<Z>(chainProducer: IFunction<T, Asap<Z>>): Asap<Z>;

    type: AsapType;

    cancel(): boolean;
}
```

�

### ***catch***

it will be invoked when an error is thrown while resolving the Asap's Promise

| Input |                                                                                                                          |
| ----- | ------------------------------------------------------------------------------------------------------------------------ |
| error | <p><strong>Type:</strong>  <code>IConsumer\<Error></code><em><code>required</code></em></p><p>the function to invoke</p> |

| Returns |   |
| ------- | - |
| this    |   |

### then <a href="#catch" id="catch"></a>

‌it will be invoked when the Asap's Promise is resolved

| Input    | ​Title                                                                                                              |
| -------- | ------------------------------------------------------------------------------------------------------------------- |
| consumer | <p><strong>Type:</strong> <code>IConsumer\<T></code><em><code>required</code></em></p><p>the function to invoke</p> |

| Returns | ​Title |
| ------- | ------ |
| this    | ​      |

### chain\<Z> <a href="#catch" id="catch"></a>

‌allows chaning Asaps

| Input         | ​Title                                                                                                                        |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| chainProducer | <p><strong>Type:</strong> <code>IFunction\<T, Asap\<Z>></code><em><code>required</code></em></p><p>the function to invoke</p> |

| Returns | ​Title |
| ------- | ------ |
| this    | ​      |

### map\<Z> <a href="#catch" id="catch"></a>

‌maps an Asap into a another one

| Input  | ​Title                                                                                                                 |
| ------ | ---------------------------------------------------------------------------------------------------------------------- |
| mapper | <p><strong>Type:</strong> <code>IFunction\<T, Z></code><em><code>required</code></em></p><p>the function to invoke</p> |

| Returns  | ​Title              |
| -------- | ------------------- |
| Asap\<Z> | ​the re-mapped Asap |

### map\<Z> <a href="#catch" id="catch"></a>

‌maps an Asap into a another one

| Input  | ​Title                                                                                                                                      |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------- |
| mapper | <p><strong>Type:</strong> <code>IFunction\<T, Z></code><em><code>required</code></em></p><p>the function producing the new chained Asap</p> |

| Returns  | ​Title            |
| -------- | ----------------- |
| Asap\<Z> | ​the chained Asap |

### cancel <a href="#catch" id="catch"></a>

‌cancels an Asap

| Returns |
| ------- |

| ​Title |   |
| ------ | - |
| void   | ​ |
