2016-10-14 1 views
0

Ich habe diese Funktion in einem Winkel 2 Komponente.Observable subscribe nicht ausgeführt, wenn Daten zurückgegeben werden

getSystem() { 
this.applicationService 
.getSystem(this.id) 
.subscribe(
    sysID => this.sysID = sysID, 
    () => console.log("success")) 
} 

Ich erhalte die SysID wieder erfolgreich, weil ich sich dann an einer anderen Funktion übergeben ist, aber der Erfolg ist nie gedruckt wird. Ich muss in der Lage sein, eine andere Funktion anstelle des Druckerfolges aufzurufen, aber dieser Code wird nie ausgeführt. Hier ist mein Service:

getSystem(appId: String):Observable<string>{ 
    return this.http.get('http://localhost:8090/app/cmticket/getsystem?app=' +appId) 
    .map(this.extractData) 
    .catch(this.handleError); 

}

private extractData(res: Response) { 
console.log("extract data") 
return res.json().stringList; 

} Ich bin mit dem gleichen Code für eine andere Funktion und es funktioniert so nicht zu verstehen, warum es nicht ausgeführt wird, auch wenn Daten zurückgegeben werden.

Antwort

2

Ihre subscribe() hat eine falsche Signatur (docs). Verwenden Sie es wie folgt aus:

.subscribe(
    sysID => this.sysID = sysID, 
    null, // second positional argument is error 
    () => console.log("success")) 

oder

.subscribe({ 
    next: sysID => this.sysID = sysID, 
    complete:() => console.log("success") 
}) 
Verwandte Themen