загрузке компонента и его данных( поля класса и инджектированные объекты ) срабатывает функция ngOnInit в которой загружается значение некоторого поля, которое назовём n. В html темплейте этого компонента в одном из тегов select я вызываю функцию, которое возвращает это n в атрибуте [value]. А присвоение значения полю n происходит из сервиса как и в момент срабатывания ngOnInit так и в моей функции, которую определяю в компоненте и вызываю в HTML темплейте в теге select, но почему-то в этой функции где вызываю метод из сервиса и после его работы когда я пытаюсь вывести n там же мне выводится всегда undefined:
getN(){
NService.getN().subscribe(
data => {this.n = data; }
error => { this.error = 'Error: ' + error;}
);
console.log(this.n);
// выводится underfined, хотя в сервисе // с бекенда запрос происходит // нормально с кодом 200 всегда
}
Поэтому у меня вопрос: ни у кого не случалось такого странного поведения ангуляра, что значение присваиваится не нулевое, но консоль выводит и ангуляр воспринмает как нулевое ??? В общем помогите. Как мне это исправить ?? Я бы с радостью, но не могу показать код полный, так как тот код энтерпрайза и мне не пренадлежит.
коллбеки в сабскрайбе вызываются после того, как вернётся ответ с бэка. а вывод в консоль - синхронный, поэтому в момент вывода ещё не определена this.n
Обсуждают сегодня