Вы используете subscribe
в своем футбольном сервисе. То, что вы хотите сделать, - это передать наблюдаемое из вашей службы данных и попросить вашу футбольную службу немного увеличить ответ, прежде чем продолжать передавать его обратно вашему компоненту.
Думайте о subscribe
как о "конце пути" для вашей наблюдаемой, но вы можете передавать наблюдаемое вокруг любому количеству подписчиков и выполнять различные операции над ответом в любое время, используя канал .
Пример использования разных операторов для изменения отклика наблюдаемого для разных подписчиков: StackBlitz
В вашем коде попробуйте что-то вроде этого:
Compoent
this.soccerService
.getPlayers(0)
.subscribe(
(teamPlayers) => {
this.teamPlayers = teamPlayers;
this.currentTeam = teamPlayers.team;
this.players = teamPlayers.players;
this.teamColor = this.currentTeam.color;
},
(error: any) => {
// TODO: handle any errors
}
);
Служба футбола
this.dataService
.getPlayers(teamId)
.pipe(
map((players) => {
this.players = players;
this.teamPlayers.team = this.team;
this.teamPlayers.players = this.players;
this.teamPlayers = {
team: this.team,
players: players
};
return this.teamPlayers;
})
);
Служба данных
getPlayers(id): Observable<Player[]> {
return this.http.get<Player[]>(`apiRootCustom/GetPlayers/${id}`, httpOptions);
}