【问题标题】:Observable in parallel可并行观察
【发布时间】:2018-04-14 13:37:17
【问题描述】:

我正在使用 Ionic 3 和 ReactiveX Observable 对象。我通过AngularFireDatabase 使用valueChanges() 方法获得了一个Observable。我想以某种方式过滤它,比如在另一个 Observable 中拥有一些具有特定属性的对象并对其进行排序。我使用Observable.forkJoin() 但它不起作用,因为我的启动画面没有隐藏。如果您需要,我可以附上一些代码。或者,也许你可以帮我举个例子。谢谢

这是我的代码

Observable.forkJoin([
  this.allParticipants = this.participantsList.valueChanges().map(res => res.sort((a, b) => a.name < b.name ? -1 : 1)),
  this.paidParticipants = this.allParticipants.map(res => res.filter(guest => guest.paid)),
]).subscribe(() => this.splashScreen.hide(), () => this.splashScreen.hide(), () => this.splashScreen.hide());

我将隐藏方法放在所有参数中,以查找它是否以某种方式隐藏但没有。

【问题讨论】:

  • 请添加一些代码以便我们帮助您。
  • 我需要执行这些操作来存储有关我的参与者的一些信息,有没有办法并行或串行调用它们以及我如何等待所有订阅 onCompleted 方法?
  • 您是否考虑过使用forkJoin 运算符? learnrxjs.io/operators/combination/forkjoin.html
  • 我去看看。谢谢
  • 它不起作用,我不知道为什么,我现在编辑问题。

标签: typescript ionic-framework reactivex


【解决方案1】:

我认为forkJoin 在这里不起作用,因为它只会在所有可观察对象完成时发出。 valuesChanges() 未完成。使用combineLatestswitchMap

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多