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...);
我尝试 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...);