У меня есть два запроса.
/users
и /user/<id>/milpac
/users
приводит к наблюдаемой User[]
, в то время как /user/<id>/milpac
приводит к объекту milpac.
export class User {
join_date: string;
promotion_date: string;
user_id: number;
username: string;
milpac: Milpac;
}
export class Milpac {
user_id: number;
milpac_id: number;
real_name: string;
username: string;
rank: string;
rank_shorthand: string;
status: string;
primary_position: string;
bio: string;
join_date: string;
promotion_date: string;
}
Сначала я получил всех пользователей с помощью:
getAll(): Observable<User[]> {
const headers = new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': this.API_AUTH_HEADER
});
const options = { headers: headers };
return this.http.get<UserResult>(this.API_URL + '/users/active', options).pipe(map(r => r.data.users));
}
Затем, через некоторое время, стало требованием загрузить milpac в пользователя:
getMilpac(userId: number): Observable<Milpac> {
const headers = new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': this.API_AUTH_HEADER
});
const options = { headers: headers };
return this.http.get<MilpacResult>(this.API_URL + `/user/${userId}/milpac`, options).pipe(map(r => r.data));
}
Моя цель теперь состоит в том, чтобы каким-то образом загрузить Milpac
в объект User
, используя объект User
, и в конечном итоге выдать его в наблюдаемом потоке.
Результат наблюдаемого долженоставайтесь User[]
, но заполните поля Milpac
за User
.
Я знаю, что функции mergeMap и т. д. существуют, но я просто не могу заставить их работать.Есть ли кто-нибудь, кто может указать мне правильное направление?