I found [this answer](https://stackoverflow.com/questions/36719116/how-to-timeout-angular2-http-request) where the solution proposed is to use **Observables** to set http requests' timeout.

However my code is structured to use mostly promises (I use observables where I want to have data automatically updated - that's not the case of the API calls).

Here is my code (inspired by Angular 2 tutorial):

```
makePostRequest(requestUrl:string, requestBody: any, requestOptions?: RequestOptions): Promise<any> {
    requestOptions = requestOptions || new RequestOptions({ headers: this._defaultHeaders });
    return this._http.post(requestUrl, JSON.stringify(requestBody), requestOptions)
        .toPromise()
        .then(this.extractData)
        .catch(this.handleError)
}

```

**How to set a timeout and throw an error (if the timeout expires) that I then catch in .catch()** or - alternatively - replicate the exact precise behavior **with Observables (including converting the result to a Promise** and not monitoring for monitoring for API update(\*))?

(\*) NOTE: I'm not sure whether Observables keep calling the APIs to check for new data, but that's not the point of my question, I just want to make sure this behavior does **not** occur.