У меня есть метод, который возвращает Observable с данными автомобиля:
getCars(): Observable<any> {
return this.get(`/cars`);
}
И еще один, который возвращается Obserable с автозапчастями:
getCarParts(carName: string): Observable<any> {
return this.get(`carParts?name=${carName}`);
}
getCars возвращает в данные массив JSON carNames (псевдокод):
{
carName: "Scoda"
},
{
carName: "BMV"
}
автомобильные данные возвращают различные автомобильные имена для определенного carName (псевдокод). Для Scoda:
{
carDetail: "SCO1"
},
{
carDetail: "SCO2"
}
Для BMW:
{
carDetail: "BMW1"
},
{
carDetail: "BMW2"
}
Я хотел бы получить все автомобили с помощью getCars, а для каждого автомобиля получить сведения об автомобиле и объединить эти данные в один массив. Результат должен выглядеть следующим образом (псевдокод):
{
carDetail: "SCO1"
},
{
carDetail: "SCO2"
}
{
carDetail: "BMW1"
},
{
carDetail: "BMW2"
}
Если бы я только что синхронно извлекал массивы (не Obserables), это выглядело бы примерно так (псевдосернистый код):
var cars = getCars();
var carDetails = new Array();
foreach (car in cars)
{
var details = getDetails(car.carName);
foreach(detail in details) carDetails.push(details);
}
Так что я хотел бы объединить данные из Obserables, извлеченные на основе данных из другого Obserable, в один массив. Как сделать это, используя Angular и RxJS наиболее подходящим способом?