显示错误并恢复流

Posted

技术标签:

【中文标题】显示错误并恢复流【英文标题】:show the error and resume the stream 【发布时间】:2017-08-26 21:32:11 【问题描述】:

我有一个实时搜索,但如果由于某种原因 forkJoin 失败,一切都会停止工作。我在错误后尝试寻找的任何新词都不起作用。如何显示错误并正常恢复流,以便我可以搜索其他单词?

this.search$
  .distinctUntilChanged()
  .switchMap((query) => Rx.Observable.forkJoin(sources)) // If this fails the search stops working
  .subscribe((results) => console.log(results));

【问题讨论】:

【参考方案1】:

试试这个:

this.search$
  .distinctUntilChanged()
  .switchMap((query) => Rx.Observable.forkJoin(sources)
    // return empty results object, I used an empty array...
    .catch(error => Observable.of([])))
  .subscribe((results) => console.log(results));

请注意,catch() 位于 forkJoin(),而不是 switchMap()...

【讨论】:

我也需要显示错误,把这个也放在catch里面?

以上是关于显示错误并恢复流的主要内容,如果未能解决你的问题,请参考以下文章

移动磁盘显示数据错误循环冗余检查数据怎样恢复

移动磁盘显示无法访问数据错误(循环冗余检查)的文件恢复方法

G盘显示由于IO设备错误,无法运行此项请求文件怎样恢复

移动磁盘显示无法访问设备硬件出现致命错误,导致请求失败的文件恢复方案

移动硬盘显示由于IO设备错误,无法运行此项请求要怎么恢复文件

Spark Streaming Job 不可恢复