Думайте об асинхронных операциях как о тех, которые происходят после остальных.Ваш getEncounterDashBoard
вызывается и запускает запрос, но все в вашем коде продолжается, с ответом или без него (обычно без, поскольку все слишком быстро).
Следовательно, ваш let labels
пытается получить this.dataList[0]
прежде чем у вас есть ответ.Одна вещь, которую вы можете сделать, это создать переменную в области компонента labels
, а затем присвоить ее внутри обратного вызова асинхронной функции (внутри subscribe
), таким образом это происходит после разрешения асинхронной функции.
Другой вариант, это создать функцию, которая обрабатывает логику, которую вы хотите выполнить после разрешения асинхронности, и вызывать ее внутри subscribe
.
afterDataList() {
let labels = this.dataList[0]
// do something with it
// ...
}