Tyl*_*ian 6 finally observable rxjs angular
关于RxJS do与finallyRxJS 之间的差异,我没有看到很好的文档.我的目标是仅在Observable返回数据时才采取行动,但看起来他们都会对失败采取行动.
do说" 为可观察序列中的每个元素调用一个动作,并在可观察序列的优雅或异常终止时调用一个动作. "observable可能返回多个元素?
finally说" 在源可观察序列正常或异常终止后调用指定的操作".我希望有人会解释是否重要,或者是否有更好的替代方法.
getData(choice): void {
this.dataService.getTableData(choice, 'mainCalls.php')
.do( () => this.defineWidth() )
.subscribe(tableData => this.tableData = tableData,
err => {
console.log(err);
}
);
}
ngOnInit() {
this.getData('getTableData');
}
Run Code Online (Sandbox Code Playgroud)
defineWidth是一个依赖于Observable返回的数据的函数.我愿意接受建议并阅读有关替代方法的材料,以实现我想要的目标.
do()为每个正常事件调用,不会修改数据流.它仅用于副作用.
finally()在最后一个事件之后或在出现错误之后调用一次.无论是成功还是失败,都会调用一次.
如果this.defineWidth()取决于this.tableData你不需要do或finally.只需在您将响应分配到的行之后添加呼叫this.tableData:
getData(choice): void {
this.dataService.getTableData(choice, 'mainCalls.php')
.subscribe(tableData => {
this.tableData = tableData;
this.defineWidth();
}),
err => {
console.log(err);
}
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3848 次 |
| 最近记录: |