2

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

虽然,Rxjscold observable 表示它将保留所有序列直到结束,并在订阅时全部触发。

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

4

2 回答 2

1

我不认为这种行为是由使用可观察对象引起的。

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

于 2018-04-17T13:46:03.603 回答
1

COLD 是你的 observable 创建生产者的时候

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

HOT 是当您的 observable 关闭生产者时

// 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

于 2018-08-15T15:41:00.523 回答