我有一个过程:返回列表GET
products = []
getAllProducts(){
this.http.get
(this.baseUrl + '/products').map((resp:Response) => resp.json())
.subscribe(
(data) => {
const products = data;
this.products = products;
},
err => {}
);
}
它的工作,正确地接收分配列表中的产品变量。 我想将其更改为一个函数,该函数返回上述列表,以便我可以将此代码作为另一个组件的服务使用。 我想是这样的:
getAllProducts(){
let localProds = [];
this.http.get
(this.baseUrl + '/products').map((resp:Response) => resp.json())
.subscribe(
(data) => {
const products = data;
localProds = products;
},
err => {alert("ERROR: GET localhost:3000/products "); localProds = ['ERROR'];}
);
return localProds;
}
this.products = this.getAllProducts();
,我认为它应该工作,但事实并非如此。我有两个问题:
1)为什么上述解决方案不起作用?
2)如何使这个函数返回收到的列表,在这种情况下JSON的列表。
编辑:我同意问题2可能已被标记为重复,如果只有我意识到事实,像异步调用这样的问题存在。由于我不知道,我仍然发现我的整个问题(这两个部分)对于像我以前这样的人来说是独一无二的,对于开发前端的新手来说,他们不知道“异步调用”这个术语。
这是asyncronous的 – alehn96
可能的复制过程(https://stackoverflow.com/questions/14220321/我怎么做 - 我从异步调用返回响应) – 2017-07-03 17:55:39