Angular 4.3 HttpClient put不会开火

时间:2017-10-24 17:13:13

标签: angular request httpclient put

我在角度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()。为什么呢?

1 个答案:

答案 0 :(得分:11)

HttpClient请求方法(所有这些)返回一个Observable:基本上它是一串等待执行的命令。在你打电话给subscribe()之前,没有任何事情发生。所以this.http.put(...)只为你准备命令。

如果您来自使用承诺的环境,这似乎是违反直觉的,因为承诺一旦生效就会执行。可观察量是不同的。看看这个short intro on YouTube