Ich versuche, Daten von einem Dienst mithilfe der subscribe-Methode zurückzugeben.Zurückgeben von HttpClient-Subskriptionsdaten an eine Komponente
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class DevRequestService {
constructor(private http: HttpClient){}
getListOfAgencies() {
return this.http.get('https://example.com/api/agency').subscribe(data => {
return data;
});
}
}
Komponente:
ngOnInit(): void {
console.log(this.devRequestService.getListOfAgencies());
}
Unten ist die Ausgabe, die ich in console.log bekommen statt der Rückgabe des Objekts mit den Werten:
Subscriber {closed: false, _parent: null, _parents: null, _subscriptions: Array(1), syncErrorValue: null, …}
Das ist richtig, du bist der Teilnehmer zu bekommen. Das ist, was 'Observable.subscribe' zurückgibt, und das ist, was Sie zurückgeben. Wahrscheinlich möchten Sie 'this.http.get (...)' zurückgeben und das Abonnement in die Komponente verschieben. Alternativ können Sie die abgerufenen Daten über eine andere Observable verfügbar machen, wie ich hier geschrieben habe: https://blog.jonrshar.pe/2017/Apr/09/async-angular-data.html – jonrsharpe