retryWhen
RxJS 5 retryWhen
by Leo
HTML
<script src="https://npmcdn.com/@reactivex/[email protected]/dist/global/Rx.umd.js"></script>
JavaScript
var retryTimes = 1;
const source = Rx.Observable.interval(100);
const example = source
.map(val => {
if(val > 1){
var e = new Error(val+"!");
console.error(e);
throw e;
}
return val;
})
.retryWhen(errors => errors.zip(Rx.Observable.range(0, 2), (e, i) => ({e, i}))
.flatMap(({e, i}) => {
if(i === 1)
{
return Rx.Observable.throw(e);
}
return Rx.Observable.timer((i+1) * 1000);
}).catch((e) => {
console.error(e);
console.log("catched error")
return Rx.Observable.empty();
})
);
const subscribe = example.subscribe(val => console.log(val));