2016-05-04 2 views
1

Ich versuche, eine Rückruffunktion nach dem Abrufen von Daten aus dem Dienst Warteschlange oder erstellen, aber die Funktion scheint asynchron aufgerufen werden. Ich möchte, dass die Funktion aufgerufen wird, nachdem die Daten abgerufen wurden, da die Daten im Observable für die Funktion erforderlich sind. Bisher dies nicht funktioniert, wie die Funktion aufgerufen wird, bevor alle Daten zu this.items zugewiesen wurden:Queue/Callback-Funktion nach dem Abrufen von Daten in einem Observable in Angular 2

this._itemsService.getItems().subscribe(items => this.items = items, err => {}, callThisFunctionAfter()); 

Gibt es eine Möglichkeit, die Funktion in einen Rückruf zu drehen oder es wie ein Versprechen Warteschlange?

Antwort

1

Sie müssen es eine Schließung machen, kein Funktionsaufruf.

this._itemsService.getItems().subscribe(items => this.items = items, err => {},() => callThisFunctionAfter()); 

Ohne () => die Funktion wird aufgerufen, und das Ergebnis wird als Callback übergeben.

Dies ist der Grund, warum callThisFunctionAfter() vor subscribe() ausgeführt wird, statt wenn das Observable geschlossen wurde.

Verwandte Themen