在使用 angular HttpClient
of angular 时,我知道 HttpClient post 方法使用冷可观察,并将进行 2 次单独调用以将数据发布到服务器。而且除非您不订阅 post 方法,否则它不会将数据发布到服务器。
虽然,Rxjs
cold observable 表示它将保留所有序列直到结束,并在订阅时全部触发。
它将如何对服务器进行 2 次单独调用以发布数据。
在使用 angular HttpClient
of angular 时,我知道 HttpClient post 方法使用冷可观察,并将进行 2 次单独调用以将数据发布到服务器。而且除非您不订阅 post 方法,否则它不会将数据发布到服务器。
虽然,Rxjs
cold observable 表示它将保留所有序列直到结束,并在订阅时全部触发。
它将如何对服务器进行 2 次单独调用以发布数据。
我不认为这种行为是由使用可观察对象引起的。
相反,我怀疑浏览器正在发出飞行前 OPTIONS 请求作为与服务器的“握手”,以确定是否理解 CORS 协议。这在 POST 请求之前,可能是您收到 2 次服务器调用以发布数据的原因。
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