My goal is to load a dropdown when a component renders. I have a service which hits a url and gets json data. Something like this
@Injectable()
export class St
The getStudentList method of the service returns an Observable therefore it is an async function. So data => {this.items = data} line performs only after the subscription is completed. But this.items is not undefined since you assign it an empty array with items: any = [], it is only empty.
You can log the values with buttonClicked method because your http request has been completed.
I think you need to get more familiar with Observable from RxJS.
Here is the official docs of HttpClient: https://angular.io/guide/http