在角度HttpClient

时间:2017-09-06 15:23:41

标签: rxjs angular-httpclient

在使用角度HttpClient时,我知道HttpClient post方法使用了冷可观察性,并且会进行2次单独调用以将数据发布到服务器。除非你不订阅post方法,否则它不会将数据发布到服务器。

虽然Rxjs冷可观察性说它会保留所有序列直到结束并且在它订阅时全部开火。

如何对服务器进行2次单独调用以发布数据。

2 个答案:

答案 0 :(得分:1)

我不相信这种行为是由使用可观察物引起的。

相反,我怀疑浏览器正在发出一个飞行前OPTIONS请求作为“握手”#3;与服务器确定是否理解CORS协议。这在POST请求之前,这可能是您向服务器发送2次调用以发布数据的原因。

答案 1 :(得分:0)

冷是指您的观察者创建生产者

// COLD
var cold = new Observable((observer) => {
  var producer = new Producer();
  // have observer listen to producer here
});

HOT是当您的观察者结束生产者时

// HOT
var producer = new Producer();
var hot = new Observable((observer) => {
  // have observer listen to producer here
});

来源:https://medium.com/@benlesh/hot-vs-cold-observables-f8094ed53339