Фактическая причина в том, что зависимости (параметры вашего конструктора) вводятся, а сам компонент создается. Во время добавления этого компонента в DOM в зависимости от некоторых ситуаций выполняются различные функции жизненного цикла.
Другое дело, что ваш .getAppConfig()
возвращает Observable
, который является асинхронной функцией. Здесь функция .getAppConfig()
будет выполняться в вашем constructor
, но в то же время выполняется ngOnInit (). Итак, очевидно, что this.apiResult
будет пустым в это время, потому что присвоение значений этому массиву еще не выполнено.
Итак, решение может быть следующим:
apiResult = [];
constructor(
private router: Router,
private applicationServices: ApplicationService,
private location: Location,
) { }
ngOnInit(){
this.applicationServices.getAppConfig()
.subscribe(result => {
this.apiResult = result;
consoloe.log(this.apiResult);
});
}
Здесь, как все подсказывает, сохраните определение конструктора в чистоте для лучших практик.
Вы можете прочитать об asyn c и нормальные функциональные различия. Также, самое главное, Observables.