在Observables forkJoin文档中,它说args可以是数组,但没有列出这样做的示例:
https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/forkjoin.md
我try 了一个类似于我下面列出的函数,但出现了一个错误:
:3000/angular2/src/platform/browser/browser_adapter.js:76
EXCEPTION: TypeError: Observable_1.Observable.forkJoin is not a function
下面是我函数的剪切版本:
processStuff( inputObject ) {
let _self = this;
return new Observable(function(observer) {
let observableBatch = [];
inputObject.forEach(function(componentarray, key) {
observableBatch.push(_self.http.get(key + '.json').map((res: Response) => res.json()));
});
Observable.forkJoin(
observableBatch
// );
).subscribe(() => {
observer.next();
observer.complete();
});
});
}
我的问题的根源是关于在按照这里的要求继续进行之前要结束的循环:Angular2 Observable - how to wait for all function calls in a loop to end before proceeding?
但我还没有完全掌握forkJoin与数组的正确用法和正确语法.
我非常感谢你能提供的帮助.
注:第三个函数返回一个可观察的
thirdFunction() {
let _self = this;
return Observable.create((observer) => {
// return new Observable(function(observer) {
...
observer.next(responseargs);
observer.complete();
});
}
processStuff(inputObject) {
let _self = this;
let observableBatch = [];
inputObject.forEach((componentarray, key) => {
observableBatch.push(_self.thirdFunction().map((res: Response) => res.json()));
});
return Observable.forkJoin(observableBatch);
}
elsewhere() {
this.processStuff(inputObject)
.subscribe()
}