Angular undefined after fetch function
У меня есть следующая функция.
getItems(): any {
fetch('./assets/data/data.json').then(res => res.json()).then(res => {
console.log(res);
return res;
});
}
В блоке fetch функция console.log выводит JSON содержимое файла. В другом компоненте:
items: any;
constructor(private itemService: ItemService) {}
ngOnInit(): void {
this.items = this.itemService.getItems();
console.log(this.items);
}
Функция console.log выводит undefined
Ответы (1 шт):
Автор решения: Alexy
→ Ссылка
Потому что вы ничего не возвращаете
// возвращаем Promise
getItems(): Promise<any> {
return fetch('./assets/data/data.json').then(res => res.json());
}
// т.к. это Promise в then получаем результат
ngOnInit(): void {
this.itemService.getItems().then((res) => {
this.items = res;
console.log(this.items);
});
}
Второй вариант использовать конструкцию async/await