В вашем файле ts есть метод ngOnInit (), ngOnInit - это хук жизненного цикла компонента, который запускается при инициализации компонента.
1) Изначально элемент управления вызывает метод getPersons (), и он будетнекоторое время (несколько миллисекунд) для получения ответа от вашего сервера.
2) Из-за асинхронного поведения, прежде чем мы получим ответ от удаленного сервера, элемент управления переходит к строке оператора консоли и выполняется.На данный момент переменная osoby по-прежнему является пустым массивом, поэтому вы получаете неопределенный доступ к первому элементу пустого массива.
3) Если вы пишете те же строки консоливнутри подписки управление этими строками будет идти только после получения ответа от вашего сервера.
this.personService.getPersons().subscribe((result: Uczen[]) => {
for (const item of result) {
this.osoby.push(item);
}
console.log(this.osoby[1]);
console.log(this.osoby.length);
});