【问题标题】:do rxjs operator is not working with ionic2do rxjs 运算符不适用于 ionic2
【发布时间】:2018-08-20 03:35:18
【问题描述】:
我正在尝试在从 firebase 获取数据时实现加载器。
这是我的代码:
this.handler.loadingPresent();
this.rooms = this.locationProvider.fetchRooms();
this.rooms.do(()=>{
this.handler.loadingDismiss();
});
房间FirebaseListObservable 在组件文件中使用| 订阅。异步管道。
那么为什么.do() 运算符不起作用?!
谢谢
【问题讨论】:
标签:
angular
typescript
firebase-realtime-database
ionic2
rxjs
【解决方案1】:
操作员不会修改它所调用的 observable。它创建并返回一个新的 observable。所以代码应该是
this.rooms = this.locationProvider.fetchRooms();
this.rooms = this.rooms.do(() => {
this.handler.loadingDismiss();
});
或者,更简单、更惯用:
this.rooms = this.locationProvider.fetchRooms()
.do(() => this.handler.loadingDismiss());
请注意,只有在获取房间时没有错误时,您的“加载”才会被解除。如果您希望无论如何都取消加载,则应使用finally 运算符而不是do。