rxjs 5.5.6 forkJoin停止自定义可观察

时间:2018-06-27 09:45:24

标签: angular rxjs observable fork-join

我尝试forkJoin一个自定义的Observable(rxjs 5.5.6)

import { forkJoin } from 'rxjs/observable/forkJoin';

forkJoin(
  this.resources.loadRefsCatalog()
).subscribe((res) => {
  // I'm never executed :(
});

目标是

public loadRefsCatalog(): Observable<any> {
  console.log(1);
  return new Observable((observer) => {
    console.log(2);
    // doing something
  });
}

我在控制台日志中得到了1和2,但是我从来没有参加过forkJoin的订阅。

我尝试使用{unsubscribe(){}}和observer.complete()进行返回,但是没有任何变化。所以我被困住了,不知道为什么。

提前感谢任何想法。

//当然,我的forkJoin适用于多个查询,其他的则可观察到HTTP并且运行良好,但我自己的却无法观察到。我尝试了很多组合。

1 个答案:

答案 0 :(得分:0)

解决方案是

  public loadRefsCatalog(): Observable<any> {
    return new Observable((observer) => {
      this.dataProvider.loadRefsCatalog().subscribe((res) => {
        this.refsCatalog = res;

        observer.next(true);
        observer.complete();
      });
    });

键是next(a_value)和complete(),但主要是forkJoin的next()。

        observer.next(...whatever you want to send to forkJoin...);