Javascript 在Firefox中使用Fetch API接收流数据

Javascript 在Firefox中使用Fetch API接收流数据,javascript,node.js,stream,fetch,Javascript,Node.js,Stream,Fetch,每当有请求出现时,我都会从Node.js服务器发送数据块。使用Expressjs router.post('/api/test',(req,res)=>{ log(“已启动api服务”); let interval=setInterval(()=>{ res.write(“消息”); }, 500); 设置超时(()=>{ 间隔时间; 决议结束(“完成”); }, 1000*10); }) 这会在10秒内发送20次“消息” 使用fetchapi从客户端调用此端点。我的想法是,我应该能够在客户端

每当有请求出现时,我都会从Node.js服务器发送数据块。使用Expressjs

router.post('/api/test',(req,res)=>{
log(“已启动api服务”);
let interval=setInterval(()=>{
res.write(“消息”);
}, 500);
设置超时(()=>{
间隔时间;
决议结束(“完成”);
}, 1000*10);
})
这会在10秒内发送20次
“消息”

使用fetchapi从客户端调用此端点。我的想法是,我应该能够在客户端单独接收每个
“消息”
,这就是我提出的实现

fetch('/api/test',{method:'POST'})
.then(res=>res.body.getReader())
.then(读卡器=>processData(读卡器))
函数processData(读卡器){
reader.read().then({value,done})=>{
log(String.fromCharCode.apply(null,value));
如果(!完成){
processData(读卡器)
}
})
返回null;
}
我希望每次从服务器发送
“消息”
,即每0.5秒,处理程序函数都会控制台日志。但在firefox中,只有在10秒钟后,所有数据才会立即被登录,如:
“messagedone”

它在Chrome中正常工作,即控制台每0.5秒记录一次
“消息”


为什么会发生这种情况,以及如何在Firefox中修复这种行为?

这种流(http)无法按您想要的方式工作。看看sockets@Grynets,谢谢你的建议。但在chrome中,这种方法似乎很有效。。它只是在firefox中,我没有得到想要的功能。这种流(http)不能以你想要的方式工作。看看sockets@Grynets,谢谢你的建议。但在chrome中,这种方法似乎很有效。。只是在firefox中,我没有得到想要的功能