Javascript Объекты не упорядочены, поэтому, если вы получите обратно только массив наблюдаемых, вы не можете быть уверены, что он принадлежит одному конкретному ключу.
Давайте попробуем таким образом, получите key, value
сначала пары, как массив. Мы будем использовать ключи даже в качестве Observables и применять forkJoin как к keys
, так и к фактическим запросам, чтобы, когда они приходят, они объединяются. Наконец, мы можем применить forkJoin ко всем forkJoins и преобразовать результаты обратно в объект с помощью карты.
const myObject = {
headerLogo: this.http.post(url, image),
loginBackground: this.http.post(url2, image)
}
const keyValuesAsObservables = Object.entries(myObject).map(([k, v]) => {
return forkJoin(of(k), v);
});
forkJoin(...keyValuesAsObservables).pipe(map(res) => {
return Object.fromEntries(res);
});