В тот момент, когда вы вызываете свой console.log, переменная имеет значение null, но когда вы смотрите на нее на более позднем этапе в консоли, эта переменная заполняется, поэтому вы можете видеть значения там.(Как указано здесь )
В функции getStory () вы можете вернуть Observable.Это может выглядеть примерно так:
getStories() {
return new Observable<Stories[]> ( (observer) => {
this.http.get<Stories[]>('URL').subscribe((response) => {
this.Story = response;
let storiesCalls = [];
for (let i = 0; i < this.Story.length; i++) {
storiesCalls.push(this.http.get('URL' + this.Story[i]+'.json'));
}
forkJoin(storiesCalls).subscribe((childStories) => {
observer.next(childStories);
observer.complete();
});
}, (error) => {
console.log("Error occurred" + error)
observer.error(error);
observer.complete();
});
});
}
Тогда вы можете подписаться на возвращаемое значение Observable, где бы вы ни хотели использовать полученные значения:
hackerStoriesServiceInstance.getStories().subscribe((childStories) => {
//do stuff with childStories object
}
У меня не было времени запустить код, поэтому могут быть некоторые «ошибки», если вы обнаружите какую-либо проблему, сообщите мне и обновите ответ.