【问题标题】: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

    【讨论】:

      猜你喜欢
      • 2017-04-18
      • 2016-12-02
      • 2023-02-16
      • 2018-06-10
      • 2016-12-04
      • 2021-01-02
      • 2018-05-13
      • 1970-01-01
      相关资源
      最近更新 更多