Вы пытаетесь console.log
свой метод, который ничего не возвращает и является асинхронным, а не возвращаемыми данными.
Если вам действительно нужны данные в ngOnInit
, вам необходимо подписаться на Наблюдаемый внутри, а не в отдельном частном методе.
Обратите внимание, что это, как правило, не лучший способ обработки данных, возвращаемых из HTTP-запроса. В зависимости от того, как потребляются данные, вы обычно хотите создать Observable в своем коде TypeScript и подписаться на него в шаблоне с помощью канала async
, где это возможно. Например:
component.ts:
this.users$ = this.dataService.getUsers().pipe(
map(data => data.items) // this is now an Observable<User[]>
);
component. html:
<div class="user-pane" *ngFor="let user of (users$ | async)">
Не забывайте, что асинхронность требует времени. Вы не можете вызвать асинхронный метод в одной строке, а затем использовать результаты в следующей строке.