我试图使用订阅方法从服务返回数据。如何将HttpClient订阅数据返回给组件
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;
});
}
}
组件:
ngOnInit(): void {
console.log(this.devRequestService.getListOfAgencies());
}
下面是我得到的的console.log而不是返回与值对象的输出:
Subscriber {closed: false, _parent: null, _parents: null, _subscriptions: Array(1), syncErrorValue: null, …}
这是正确的,你得到的用户。这就是'Observable.subscribe'返回的结果,这就是你要返回的结果。可能你想要的是'返回this.http.get(...)',并将订阅移动到组件中。或者,您可以通过另一个可观察值公开获取的数据,就像我在这里写的:https://blog.jonrshar.pe/2017/Apr/09/async-angular-data.html – jonrsharpe