Я реализовал интерфейс REST на бэкэнде, который связывается с моим угловым сервером внешнего интерфейса для загрузки данных из моего MongoDB.На глобальном уровне классов я определяю массив, в котором все мои проекты хранятся в базе данных:
protected projects: Array<Project> = [];
В моем методе OnInit я пытаюсь поместить все проекты в массив для использования:
for(let i=0; i <this.user.projects.length; i++) {
this.databaseService.getDocument('Projects', this.user.projects[i])
.subscribe((project: Project) => {
this.projects.push(project);
});
}
Метод databaseService
выглядит следующим образом:
getDocument(collection: string, documentIdentifier: string): any {
return this.http.get(`${newLink}${collection}/${documentIdentifier}`)
.pipe(map((res: Response) => res));
}
Теперь, когда я пытаюсь получить доступ к элементу массива проектов позже в OnInit
Я получаю неопределенную / нулевую ошибку:
console.log('Projects' , this.projects[0]);
Хотя массив проекта должен быть заполнен правильно.Может быть, элементы в ошибке не загружены полностью?Потому что, когда я одновременно регистрирую весь массив, он выводится на консоль с сообщением: Значение, указанное ниже, было оценено только сейчас .Кто-нибудь видит, что я делаю не так?Заранее спасибо.