Pra*_*lge 3 observable rxjs concatmap
我有以下代码:
Observable.from(modifiedNodes)
.concatMap(node => {
return this.Model.setData(node);
})
.subscribe(() => {
NodeSaved++;
}
Run Code Online (Sandbox Code Playgroud)
如果setData为任何中间节点抛出错误,则不会恢复下一个节点序列。我们如何修改它,以便即使一个节点出现错误,也将执行下一个节点序列?我读过,onErrorResumeNext但我不知道如何在这里使用它。
方法签名setData如下:
public setData(node: INode): Observable<Object>{}
Run Code Online (Sandbox Code Playgroud)
如果setData返回可观察对象,则可以使用catch运算符。它将接收从内部抛出的任何错误setData,如果您返回一个空的 observable,concatMap它将移动到序列中的下一个节点:
import 'rxjs/add/observable/empty';
import 'rxjs/add/operator/catch';
Observable
.from(modifiedNodes)
.concatMap(node => this.Model
.setData(node)
.catch(error => Observable.empty())
)
.subscribe(() => { NodeSaved++; });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3856 次 |
| 最近记录: |