【问题标题】:Checking if an array of observables completed without firing them检查一组可观察对象是否在未触发的情况下完成
【发布时间】:2017-06-13 10:44:23
【问题描述】:

我在 Angular 2 中从 HTTP 请求创建 observables。如果所有 observables 都完成且没有错误,我想运行一段代码。

现在我正在使用 forkJoin 来组合我的 observables 数组

Observable.forkJoin(observables)
.subscribe(
  success => {
 //code
 },
 error => console.log('error'));
}

我遇到的问题是 forkJoin 再次触发了这些 HTTP 请求。当我创建 observable、订阅它并放入一个数组时,我已经解雇了他们。是否有与 forkJoin 等效的方法,我可以在所有可观察对象完成后运行一段代码,而无需再次触发 HTTP 请求?

【问题讨论】:

  • 你可以使用flatMap链接它们
  • 或者使用.do代替.forkJoin

标签: javascript angular typescript rxjs


【解决方案1】:

我认为问题在于您订阅了那些 observables 两次,但由于它们是冷的 observables,它们被解雇了两次。

为了防止这种情况,我建议你关注这个解决这个问题的线程What is the correct way to share the result of an Angular 2 Http network call in RxJs 5?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多