【发布时间】:2018-01-21 14:36:02
【问题描述】:
我有以下方法不正确:
getProducts(): Observable<Product[]> {
let PRODUCTS: Product[];
this.http.get(this.base_url + "api/products")
.subscribe(
(data) => {
for(var i in data) {
PRODUCTS.push(new Product(data[i].id, data[i].name, data[i].category, data[i].description, data[i].price, data[i].amount));
}
},
(error) => {
console.log(error);
});
return of(PRODUCTS);
}
我得到的错误是:
TypeError: Cannot read property 'push' of undefined
现在,我知道 PRODUCT 数组无法从 subscribe 函数中访问,但我无法获得正确的解决方案。
谁能帮帮我。我想返回一个Observable<Product[]>。
提前谢谢你!
【问题讨论】:
-
初始化你的数组:让 PRODUCTS: Product[] = [];
-
@pixelbits 这修复了未定义的错误,但它肯定仍然是错误的:该函数现在同步返回一个异步修改的数组的 observable。
-
angular.io/guide/http 做一些研究
-
为什么将结果存储在类实例中?该类是否定义了任何类型的行为? (方法)
标签: angularjs angular typescript observable