В документации Observables forkJoin говорится, что args может быть массивом, но в нем нет примера:
https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/forkjoin.md
Я пробовал функцию, подобную той, что я перечислял (ниже), но придумал ошибку:
: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 Наблюдаемый - как дождаться завершения всех вызовов функций в цикле до продолжения?
Но я не полностью освоил правильное использование 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()
}