do rxjs 运算符不适用于 ionic2



我正在尝试在从Firebase获取数据时实现加载器。

这是我的代码:

  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

相关内容

  • 没有找到相关文章

最新更新