rxjs с несколькими форкьюнами при выполнении http-запросов

Я делаю несколько запросов http и использую rxjs для успешного уведомления о результате:

  getReportings(departmentId: number): Observable<any> {
        return Observable.forkJoin(
            this.http.get('/api/members/' + departmentId).map(res => res.json()),
            this.http.get('/api/reports/' + departmentId).map(res => res.json())
        );
    }

Когда оба http-запроса выполнены, я хочу, чтобы внутри метода getReportings выполнялся итерация массива отчетов, считывался несколько значений и для каждого отчета снова создавался новый http-запрос с этими значениями.

Всего у меня 2 (член / отчеты) + ок. От 4 до 8 (другие вещи) запросы.

Когда все ок. Выполнено от 6 до 8 запросов. Я хочу получить ВСЕ данные из предыдущих 6–8 запросов в успешном обработчике.

Как я могу сделать это с rxjs?

ОБНОВИТЬ

Поскольку пользователь olsn попросил более подробную информацию, и теперь я понимаю его, в чем его забота, я разместил здесь больше данных (псевдокод) как должны выглядеть запросы от 6 до 8:

getReportings(departmentId: number): Observable<any> {
    return Observable.forkJoin(
        this.http.get('/api/members/' + departmentId).map(res => res.json()),
        this.http.get('/api/reports/' + departmentId).map(res => res.json())
    ).switchMap((result: [any[], any[]]) => {
        let members: any[] = result[0];
        let reports: any[] = result[1];
        let allNewStreams: Observable<any>[] = [
            Observable.of(members),
            Observable.of(reports)
        ]; 

        for(let report of reports)
        {
            allNewStreams.push(
this.http.get(report.url + ?key1=report.name1?).map(res => res.json()));
        }


        return Observable.forkJoin(allNewStreams); // will contain members, reports + 4-6 other results in an array [members[], reports[], ...other stuff]
    });
}

Ответы на вопрос(1)

Ваш ответ на вопрос