【发布时间】:2018-03-13 11:23:22
【问题描述】:
我在存储返回的 Promise 中的数据时遇到了麻烦。
为了确保确实返回了我想要的值,我这样记录它。
private fetchData() {
this._movieFranchiseService.getHighestGrossingFilmFranchises()
.then((franchises: FilmFranchise[]) => {
console.log(franchises)
});
}
但现在我想存储它。
private franchises: FilmFranchise[] = [];
private fetchData() {
this._movieFranchiseService.getHighestGrossingFilmFranchises()
.then((franchises: FilmFranchise[]) => this.franchises = franchises);
console.log(this.franchises);
}
我用这段代码得到的只是一个空数组。那么为什么没有正确分配this.franchises 呢?
附加模型、模拟和服务
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);
}
谢谢
【问题讨论】:
-
您是否进行了我在下面的回答中建议的更改?即使进行了更改,您上面的代码仍将始终 log 一个空数组。
-
我做了,日志确实是正确的。我知道我无法立即访问它,因为它不是异步的。现在我该怎么做才能访问它?
-
我将在下面扩展我的答案。
标签: angular typescript promise