Angular do rxjs操作员未使用ionic2
我试图在数据从firebase获取时实现一个加载器 这是我的代码:Angular do rxjs操作员未使用ionic2,angular,typescript,firebase-realtime-database,ionic2,rxjs,Angular,Typescript,Firebase Realtime Database,Ionic2,Rxjs,我试图在数据从firebase获取时实现一个加载器 这是我的代码: this.handler.loadingPresent(); this.rooms = this.locationProvider.fetchRooms(); this.rooms.do(()=>{ this.handler.loadingDismiss(); }); 房间FirebaseListObservable使用异步管道在组件文件中订阅 那么为什么.do()操作符不工作 谢谢操作员没有修改
this.handler.loadingPresent();
this.rooms = this.locationProvider.fetchRooms();
this.rooms.do(()=>{
this.handler.loadingDismiss();
});
房间FirebaseListObservable
使用异步管道在组件文件中订阅
那么为什么.do()
操作符不工作
谢谢操作员没有修改所调用的可观察值。它创建并返回一个新的可观察对象。所以代码应该是
this.rooms = this.locationProvider.fetchRooms();
this.rooms = this.rooms.do(() => {
this.handler.loadingDismiss();
});
或者更简单、更惯用:
this.rooms = this.locationProvider.fetchRooms()
.do(() => this.handler.loadingDismiss());
请注意,只有在获取房间时没有错误,您的“加载”才会被取消。如果希望不管发生什么情况都取消加载,则应使用finally
操作符,而不是do