Я пытаюсь дождаться результата forEach()
с forkJoin
и отправить результат обратно. Но я терплю неудачу. Я пытаюсь сделать что-то вроде этого:
publish() {
this.generateDownload().subscribe(response => {
console.log(response)
})
)
generateDownload(): Observable<any> {
let obs = [];
this.objectlist.forEach(distance => {
obs.push(
this.initializeDistance(distance).pipe(map(() => {
return ExcelExport.convertHTML2data(distance);
}))
);
});
return forkJoin(obs);
}
Функция initializeDistance(...)
возвращает наблюдаемое значение ExcelExport.convertHTML2data
- это «нормальная» функция, которая возвращает массив данных.
Сейчас я пытаюсь дождаться, пока initializeDistance
вернет значение. Но происходит то, что forEach
запускается и также возвращает массив с результатами в generateDownload
, но элементы массива равны. Я мог бы понять, что forkJoin
не ждет, пока initializeDistance
не закончится.
Но что я могу сделать, чтобы решить мою проблему?
Спасибо за вашу помощь!