我在角度4.3服务中得到了这个httpclient请求:
updateTermin(termin: Termin){
let url = '${this.termineUrl}/${termin.id}';
this.http
.put(url, termin, {headers: this.headers})
}
如果我附加一个.subscribe(),它只会被触发:
updateTermin(termin: Termin){
let url = '${this.termineUrl}/${termin.id}';
this.http
.put(url, termin, {headers: this.headers})
.subscribe()
}
其他请求(删除或发布)不附加.subscribe()。为什么呢?
答案 0 :(得分:11)
HttpClient
请求方法(所有这些)返回一个Observable:基本上它是一串等待执行的命令。在你打电话给subscribe()
之前,没有任何事情发生。所以this.http.put(...)
只为你准备命令。
如果您来自使用承诺的环境,这似乎是违反直觉的,因为承诺一旦生效就会执行。可观察量是不同的。看看这个short intro on YouTube