当前位置: 首页 > 知识库问答 >
问题:

eventsource - 线上接口流式返回数据不起作用一次性全部返回了?

钱言
2026-01-30

后端接口是流式返回数据,前端也是流式接收
本地返回数据是流式的,前端显示的也没问题,线上环境就一直pending,最后一次性返回了数据

//         const reader = res.body.getReader();
//         const decoder = new TextDecoder();
//         while (true) {
//             const { done, value } = await reader.read();
//             if (done) break;
//             const chunk = decoder.decode(value, { stream: true });
//             try {
//                 aiRecommendloading.value = false;
//                 if (chunk) {
//                     aiRecommendData.value += chunk;
//                 }
//             }catch (e) {
//                 console.log('Parse error:', e, 'Line:', chunk);
//             }
//         }

这个是按照网上改的配置文件

但也没效果

共有1个答案

万俟经纶
2026-01-30

线上环境的问题你改开发时的本地服务器配置干啥?(严重怀疑你看的就是我之前的回答 ��)

可能的问题太多了,建议从几个方向入手:

  1. 先抓包看请求、响应标头,到底是不是 text/event-stream?有没有中间哪个环节被篡改过?
  2. 如果后端是 nginx,检查配置是否显式指定了 proxy_buffering off;?要不然默认值是 on,会等缓冲区满了才输出。
  3. 如果中间还套了负载均衡器、网关、DCDN 等等,检查每个环节的相关设置,如果不确定,可以逐个先去掉尝试直连后端服务器、再一个一个加上看是哪个中间件的问题。
 类似资料:
  • 我想请求别人的接口,但是我不知道它的接口返回类型是啥,所以我的需求是:如何根据接口返回类型是text/event-stream则逐条返回,否则一次性全部返回?

  • 我写了自己的类加载器,它与类一起工作,实现了接口插件。但是我不能将类转换为插件。怎么了? 错误:(18,47)java:不兼容的类型:java。lang.类无法转换为插件 我补充说,这是我的SimpleClassLoader类的主要部分,它扩展了ClassLoader。

  • 本文向大家介绍PowerShell函数一次返回多个返回值示例,包括了PowerShell函数一次返回多个返回值示例的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,如何让函数返回值,如何接收返回值,如何让不相干的内容不放到返回值数组中。 PowerShell函数体中的任何输出,一般来说,都会以返回值的形式返回给函数调用者。多个输出的内容是放到一个返回值数组中的。

  • 本文向大家介绍Django+RestFramework API接口及接口文档并返回json数据操作,包括了Django+RestFramework API接口及接口文档并返回json数据操作的使用技巧和注意事项,需要的朋友参考一下 系统:ubuntu18.04 x64 GitHub:https://github.com/xingjidemimi/DjangoAPI.git 安装 API示例 创建d

  • 返回起点功能可将您指引到训练的起点。 若要在一次训练中使用返回起点功能: 在训练准备模式中,按下 LIGHT(背光灯)按钮,或轻触 进入快捷菜单。 从列表中选择 Back to start(返回起点),然后选择 on(开启)。 您也可以在训练期间设置返回起点,方法是暂停训练,使用 LIGHT(背光灯)按钮打开快捷菜单,滚动至 Back to start(返回起点),然后选择 on(开启)。 若在

  • 返回起点功能可将您指引到训练的起点。 若要在一次训练中使用返回起点功能: 在训练准备模式中,按下 LIGHT(背光灯)按钮,或轻触 进入快捷菜单。 从列表中选择 Back to start(返回起点),然后选择 on(开启)。 您也可以在训练期间设置返回起点,方法是暂停训练,使用 LIGHT(背光灯)按钮打开快捷菜单,滚动至 Back to start(返回起点),然后选择 on(开启)。 若在

  • 我创建了这个函数来计算我要测量的距离: 由于我不明白的原因,距离的值只返回一次。因此,如果我在forEach函数中抛出2个位置,并且在循环中使用console.log,我会看到所有的计算都是正确的。但如果我返回距离的值,则只返回一个值。 如何正确返回值? 我使用VueJS,其中'Distance toResponder'是一个计算属性来填充表: 因此函数应该返回每个响应者的距离。那么我需要如何调整

  • 下面是Elasticsearch返回的数据结构示例。