【发布时间】:2018-03-30 05:34:24
【问题描述】:
我正在尝试使用订阅方法从服务返回数据。
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返回的内容,这就是您要返回的内容。可能您想要的是return this.http.get(...),并将订阅移动到组件中。或者,您可以通过另一个 observable 公开获取的数据,正如我在这里所写的:blog.jonrshar.pe/2017/Apr/09/async-angular-data.html
标签: angular typescript