如何仅在 RxJs 中可观察到的源发出的某些错误上重试

How to retry only on certain error emitted by the source observable in RxJs

A srcObservable.retry() 将捕获 srcObservable 发出的错误并重新订阅 srcObservable,而不管错误的类型。但是,在某些情况下,只希望重试 srcObservable 发出的某些类型的错误。有没有办法在 RxJs 中巧妙地做到这一点?

尝试使用 retryWhen:

src.retryWhen(function (errors) {
    // retry for some errors, end the stream with an error for others
    return errors.do(function (e) {
        if (!canRetry(e)) {
            throw e;
        }
    });
});