Rxjs 如何仅在内部可观察到错误时重试?
我有以下样本:Rxjs 如何仅在内部可观察到错误时重试?,rxjs,reactive,Rxjs,Reactive,我有以下样本: const result = http.get('http://google.com') .switchMap(() => 'http://example.com') // This retry should retry only example.com .retryWhen(error => (error instanceof Re
const result = http.get('http://google.com')
.switchMap(() => 'http://example.com')
// This retry should retry only example.com
.retryWhen(error =>
(error instanceof Response && error.status == 429) ?
Observable.timeout(5000) : Observable.throw(error))
// This retry should retry google.com
.retryWhen(error => Observable.timeout(5000))
我想要一个retryWhen,它将只重试他的直系父母。如果出现全局错误,我将重试整个序列。RxJS 5有没有简单的方法
UPD:这些只是例子。实际上情况更复杂,我只需要一个想法。你只需要把retryWhen放在switchMap中:
const inner = http.get('http://example.com')
// This retry should retry only example.com
.retryWhen(error =>
(error instanceof Response && error.status == 429) ?
Observable.timer(5000) : Observable.throw(error))
const outer = http.get('http://google.com')
.switchMap(() => inner)
// This retry should retry google.com
.retryWhen(error => Observable.timeout(5000))