This question already has answers here:
Angular 2 http get not getting

(4个答案)


3年前关闭。




我在angular 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()即可工作。为什么?

最佳答案

HttpClient请求方法(所有方法)都返回一个Observable:基本上,这是一串等待执行的命令。除非您在该链上调用subscribe(),否则什么都不会发生。因此,this.http.put(...)仅为您准备命令。

如果您来自使用 promise 的环境,那么这似乎是违反直觉的,因为 promise 一旦生效就会立即执行。观测值是不同的。看看这个short intro on YouTube

09-27 17:37