【发布时间】:2018-12-14 19:59:13
【问题描述】:
我正在尝试使用 Angular 中的 HttpClient 检索一些数据。我的代码如下所示:
getData(suffurl: string, id?:number): Observable<any[]> {
return this.http.get<any[]>('localhost:5555/DNZ/'+ this.suff_url)
.pipe(
tap(data => console.log("Anlagenstatus Daten:", data)),
catchError(this.handleError('getData',[])),
subscribe(Response => { console.log(Response)})
)
}
但是,我不能在 pipe 方法中使用 subscribe,或者在 .pipe 方法之前或之后链接它。问题是,如果没有订阅,尽管链接和数据存在,但似乎这段代码没有从 url 返回任何数据或将任何内容记录到控制台?
【问题讨论】:
-
服务不应订阅。该服务的调用者应该。 angular.io/guide/http 为什么,哦,你为什么使用
any?知道数组实际包含什么不是很好吗? -
实际上,我的组件中有这个“服务”作为方法,所以调用者实际上是订阅者......但我现在在 NgOnInit() 中做到了......
-
好吧,不要那样做。将您的数据访问代码放入服务中。 angular.io/guide/http
-
+1 始终尽可能地向调用者提出异步并在那里使用它! 题外话:哦,亲爱的,似乎每次我回答其中一个
asyncPromiseObservable或http.request时都会弹出另一个问题。止血!救命!
标签: angular publish-subscribe angular-httpclient