do rxjs 运算符不适用于 ionic2
do rxjs operator is not working with ionic2
我正在尝试在从 firebase 获取数据时实现加载程序。
这是我的代码:
this.handler.loadingPresent();
this.rooms = this.locationProvider.fetchRooms();
this.rooms.do(()=>{
this.handler.loadingDismiss();
});
房间 FirebaseListObservable
是在组件文件中使用 | 订阅的异步管道。
那么为什么 .do()
运算符不起作用?!
谢谢
运算符不会修改调用它的可观察对象。它 创建并 returns 一个新的可观察对象。所以代码应该是
this.rooms = this.locationProvider.fetchRooms();
this.rooms = this.rooms.do(() => {
this.handler.loadingDismiss();
});
或者,更简单、更地道:
this.rooms = this.locationProvider.fetchRooms()
.do(() => this.handler.loadingDismiss());
请注意,只有在获取房间时没有错误,您的 "loading" 才会被取消。如果您希望无论如何都关闭加载,则应使用 finally
运算符而不是 do
.
我正在尝试在从 firebase 获取数据时实现加载程序。
这是我的代码:
this.handler.loadingPresent();
this.rooms = this.locationProvider.fetchRooms();
this.rooms.do(()=>{
this.handler.loadingDismiss();
});
房间 FirebaseListObservable
是在组件文件中使用 | 订阅的异步管道。
那么为什么 .do()
运算符不起作用?!
谢谢
运算符不会修改调用它的可观察对象。它 创建并 returns 一个新的可观察对象。所以代码应该是
this.rooms = this.locationProvider.fetchRooms();
this.rooms = this.rooms.do(() => {
this.handler.loadingDismiss();
});
或者,更简单、更地道:
this.rooms = this.locationProvider.fetchRooms()
.do(() => this.handler.loadingDismiss());
请注意,只有在获取房间时没有错误,您的 "loading" 才会被取消。如果您希望无论如何都关闭加载,则应使用 finally
运算符而不是 do
.