Example 1: Timeout after 2.5 seconds
( StackBlitz | jsBin | jsFiddle )
// RxJS v6+import { of } from 'rxjs';import { concatMap, timeout, catchError, delay } from 'rxjs/operators';// simulate requestfunction makeRequest(timeToDelay) {return of('Request Complete!').pipe(delay(timeToDelay));}of(4000, 3000, 2000).pipe(concatMap(duration =>makeRequest(duration).pipe(timeout(2500),catchError(error => of(`Request timed out after: ${duration}`)))))/** "Request timed out after: 4000"* "Request timed out after: 3000"* "Request Complete!"*/.subscribe(val => console.log(val));
timeout 📰 - Official Docs
📁 Source Code: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/timeout.ts