下面的代码在浏览器中工作正常。但是当用于电子时,事件源不会关闭。
var source = new EventSource("http://localhost/hyperion_datasource/events/powerup_events.php");
var data=[];
source.onmessage = function (event) {
data = event.data.split("$");
console.log(data[0]);
if (data[0] > 99) {
console.log('closing stream');
source.close();
}
};
答案 0 :(得分:0)
在调用close()
之后,还将值设置为null。然后可以将其销毁并进行垃圾收集。
var source = new EventSource("http://localhost/hyperion_datasource/events/powerup_events.php");
var data=[];
source.onmessage = function (event) {
data = event.data.split("$");
console.log(data[0]);
if (data[0] > 99) {
console.log('closing stream');
source.close();
source = null;
}
};
我怀疑您应该这样做,以便它也能在所有浏览器中可靠地工作。行为上的差异也可能是由于在Electron前端中运行它的范围不同所致。