Ich habe ein Verfahren:Return Liste von Typoskript Funktion tun HTTP GET
products = []
getAllProducts(){
this.http.get
(this.baseUrl + '/products').map((resp:Response) => resp.json())
.subscribe(
(data) => {
const products = data;
this.products = products;
},
err => {}
);
}
es funktioniert, ordnet korrekt empfangen Liste Produkte variabel. Ich möchte es in eine Funktion ändern, die obige Liste zurückgibt, damit ich diesen Code als Dienst von einer anderen Komponente wiederverwenden kann. Ich habe versucht, so etwas wie dieses:
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();
ich denke, es sollte funktionieren, wenn es nicht der Fall ist. Ich habe zwei Fragen:
1) Warum funktioniert die obige Lösung nicht?
2) Wie diese Funktion die Empfangsliste zurückgibt, in diesem Fall die JSON-Liste.
EDIT: Ich stimme zu, dass Frage Nr. 2 möglicherweise als ein Duplikat markiert wurde, wenn ich nur die Tatsache wusste, dass ein solches Problem als asynchroner Aufruf überhaupt existiert. Da ich das nicht wusste, finde ich immer noch meine ganze Frage (beide Teile davon) einzigartig für Leute wie mich, Neulinge für Frontend-Entwicklung, die den Begriff "asynchroner Anruf" nicht kennen.
Es ist ein Prozess asynchronen – alehn96
Mögliches Duplikat (https://stackoverflow.com/questions/14220321/ how-do-i-Return-die-Antwort-von-einem-asynchronen Anruf) –