retry

signature: retry(number: number): Observable

Retry an observable sequence a specific number of times should an error occur.

πŸ’‘ Useful for retrying HTTP requests!

πŸ’‘ If you only want to retry in certain cases, check out retryWhen!

πŸ’‘ For non error cases check out repeat!

​​Ultimate RxJS​​

Examples

Example 1: Retry 2 times on error

( StackBlitz | jsBin | jsFiddle )

// RxJS v6+
import { interval, of, throwError } from 'rxjs';
import { mergeMap, retry } from 'rxjs/operators';
​
//emit value every 1s
const source = interval(1000);
const example = source.pipe(
mergeMap(val => {
//throw error for demonstration
if (val > 5) {
return throwError('Error!');
}
return of(val);
}),
//retry 2 times on error
retry(2)
);
/*
output:
0..1..2..3..4..5..
0..1..2..3..4..5..
0..1..2..3..4..5..
"Error!: Retried 2 times then quit!"
*/
const subscribe = example.subscribe({
next: val => console.log(val),
error: val => console.log(`${val}: Retried 2 times then quit!`)
});

Additional Resources

πŸ“ Source Code: https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/retry.ts​