retryWhen
deprecatedReturns an Observable that mirrors the source Observable with the exception of an error
. If the source Observable
calls error
, this method will emit the Throwable that caused the error to the ObservableInput
returned from notifier
.
If that Observable calls complete
or error
then this method will call complete
or error
on the child
subscription. Otherwise this method will resubscribe to the source Observable.
Retry an observable sequence on error based on custom criteria.
Example
import { interval, map, retryWhen, tap, delayWhen, timer } from 'rxjs';
const source = interval(1000);
const result = source.pipe(
map(value => {
if (value > 5) {
// error will be picked up by retryWhen
throw value;
}
return value;
}),
retryWhen(errors =>
errors.pipe(
// log error message
tap(value => console.log(`Value ${ value } was too high!`)),
// restart in 5 seconds
delayWhen(value => timer(value * 1000))
)
)
);
result.subscribe(value => console.log(value));
// results:
// 0
// 1
// 2
// 3
// 4
// 5
// 'Value 6 was too high!'
// - Wait 5 seconds then repeat
function retryWhen<T>(notifier: (errors: Observable<any>) => ObservableInput<any>): MonoTypeOperatorFunction<T>;
§
retryWhen<T>(notifier: (errors: Observable<any>) => ObservableInput<any>): MonoTypeOperatorFunction<T>
[src]§Parameters
§
notifier: (errors: Observable<any>) => ObservableInput<any>
[src]Function that receives an Observable of notifications with which a
user can complete
or error
, aborting the retry.