Сначала я пытаюсь получить все проекты из базы данных, указав userId из URL. Я делаю это в ngOnInit (). У каждого проекта есть поле Languages , представляющее собой список объектов из другой таблицы Languages. Одна запись в этой таблице имеет поле с именем projectId , с помощью которого я пытаюсь получить все языки для каждого проекта. Я думаю, что у меня есть проблема с асинхронным получением данных, потому что проекты принимаются правильно, но поле languages в каждом объекте Project является пустым. Что мне делать?
ngOnInit() {
this.userId = this.route.snapshot.params['id'];
this.getAllProjectsByUserId(this.userId);
this.getLanguagesByProjectId();
}
getAllProjectsByUserId(id: number) { //receivng all projects for given userId
this.portfolioAppService.getAllProjectsByUserId(id).subscribe((data) => {
this.projectsList = data;
console.log(this.projectsList);
},
error => console.error(error)
);
}
getLanguagesByProjectId() { //receiving all languages for each project
this.projectsList.forEach(x => {
this.portfolioAppService.getLanguagesByProjectId(x.id).subscribe((data) => {
x.languages = data;
console.log(this.projectsList);
},
error => console.error(error)
);
});
}