timeout

RxJS 5 timeout

by Brian Troncone

HTML

<script src="https://unpkg.com/rxjs/bundles/Rx.min.js"></script>

JavaScript

// simulate request
function makeRequest(timeToDelay) {
  return Rx.Observable.of('Request Complete!').delay(timeToDelay);
}

Rx.Observable.of(4000, 3000, 2000)
  .concatMap(duration =>
    makeRequest(duration)
      .timeout(2500)
      .catch(error => Rx.Observable.of(`Request timed out after: ${duration}`))
  )
  /*
  *  "Request timed out after: 4000"
  *  "Request timed out after: 3000"
  *  "Request Complete!"
  */
  .subscribe(val => console.log(val));