I'm getting troubles storing data from a returned promise.
To ensure that the value I want has indeed been returned I log it like this.
private fetchData() {
this._movieFranchiseService.getHighestGrossingFilmFranchises()
.then((franchises: FilmFranchise[]) => {
console.log(franchises)
});
}
But now I want to store it.
private franchises: FilmFranchise[] = [];
private fetchData() {
this._movieFranchiseService.getHighestGrossingFilmFranchises()
.then((franchises: FilmFranchise[]) => this.franchises = franchises);
console.log(this.franchises);
}
All I get with this code is an empty array. So why isn't this.franchises assigned correctly ?
Additional model, mock and service
export class FilmFranchise {
id: number;
name: string;
revenue: number; // Revenue in billion U.S dollars
}
export var FRANCHISES: FilmFranchise[] = [
{ id: 1, name: 'Marvel Cinematic Universe', revenue: 13.47 },
{ id: 2, name: 'J.K Rowling\'s Wizarding World', revenue: 8.54 },
{ id: 3, name: 'Star Wars', revenue: 7.52 },
{ id: 4, name: 'James Bond', revenue: 7.04 },
{ id: 5, name: 'Middle Earth', revenue: 5.88 }
];
public getHighestGrossingFilmFranchises() {
return Promise.resolve(FRANCHISES);
}
Thanks