【发布时间】:2020-01-15 17:25:02
【问题描述】:
使用 RxJS 6.5,我订阅了一个流,我想采取两个不同的操作: - 一个源错误时 - 另一个源发送数据时间过长(超时)
这是我目前拥有的
source$.pipe(
timeoutWith(5000, log('timeout!')),
catchError(log('error!'))
).subscribe();
function log(msg) {
console.log(msg);
return of(null);
}
当我的源发出的时间超过 5000 毫秒时,我得到了预期的结果:超时!
但是,当我的源代码提前(在 5000 毫秒之前)抛出错误时,两条线都会执行。似乎只要源没有发出,就会触发timeoutWith,即使它出错了。
如何设置管道,以便超时逻辑仅在实际时间已过时运行,而不是因为流因错误而中止?
【问题讨论】:
标签: rxjs observable