rxjs 5.5.6 forkJoin 停止自定义可观察

rxjs 5.5.6 forkJoin stop with custom observable

我尝试 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() 尝试了一些 return,但没有任何变化。所以我不知道为什么。

提前感谢您的任何想法。

// 当然我的 forkJoin 用于多个查询,其他的是 http observable 和 运行 好吧,但不是我自己的 observable。我尝试了很多组合。

解决方案是

  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...);