Допустим, у меня есть ученик с двумя свойствами: courseIds, курсы.
export interface IStudent {
courseIds: number[];
courses: ICourse[];
}
export interface ICourse {
name: string;
}
Когда страница загружается, я выдаю запрос GET, чтобы получить ученика, в котором заполнены только идентификаторы курсов. Затем я хочу проверить эти идентификаторы и сделать неизвестное число дополнительных запросов GET к другой конечной точке для извлечения его курсов.
В конце я хочу получить объект Student с заполненным массивом Courses.
Я получил это далеко:
httpClient.get<IStudent>(url)
.pipe(
map(student => {
const validIds = [];
student.courseIds.forEach(id => {
if (isValid(id)) {
validIds.push(id);
}
}
return validIds;
}),
???
).subscribe(
???
);
Знаки вопроса указывают, где я застрял. Как я могу реализовать это с помощью Observables?