首页 > 解决方案 > RxJS catchError 并返回先前的值而不是完成?

问题描述

我有一个可能会或可能不会出错的流,我想 catchError 以便返回错误之前的上一个/最后一个值,以便继续流而不完成。类似这样的东西:

inputStream$.pipe(catchError(err => inputStream$.previousValue)).subscribe(...)

标签: rxjs

解决方案


一旦你的 observableinputStream$发出错误,它就完成了。

catchError允许将一个发出错误的可观察对象与另一个可观察对象(第一个参数的结果catchError)连接起来。这里提供了一些示例:https ://www.learnrxjs.io/operators/error_handling/catch.html

您正在寻找的可能是当源发出错误时retry重新订阅源 observable(此处)。https://www.learnrxjs.io/operators/error_handling/retry.htmlinputSteam$


推荐阅读