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

vue3 - 为什么Vite+Vue3与Vue2+Electron处理fetch流式数据结果不同?

温峻熙
2024-08-13

使用fetch处理流式数据,在vite+vue3的项目中,结果为流式的,但是在vue2+electron的项目中,数据就变成一次性返回了

const controller = new AbortController();
      const signal = controller.signal;
      const response = await fetch("/v1/services/aigc/text-generation/generation", {
        method: "POST",
        signal,
        headers: {
          "Content-Type": "application/json",
         Authorization: `Bearer ${dash_scope_apikey}`,
          Accept: "text/event-stream"
        },
        body: JSON.stringify({
          model: "qwen-plus-0723",
          input: {
            messages: [
              {
                role: "user",
                content: "介绍一下你自己"
              }
            ]
          },
          parameters: {
            result_format: "message",
            incremental_output: true
          }
        })
      });
      if (response.ok) {
        const reader = response.body.getReader();
        const decoder = new TextDecoder();
        while (true) {
          const { value, done } = await reader.read()
          if (done) break
          const chunk = decoder.decode(value, { stream: true })
          console.log(chunk);
        }
      }

两个项目请求是一样的,但是结果不同,如下
vue2+electron electron版本为20.3.12,vue的版本为2.7.14
image.png

vite+vue3 vue的版本为3.4.29,vite的版本为5.3.1
image.png

求大佬解答

共有1个答案

田翰林
2024-08-13

我答过类似的问题,如果是本地开发环境应该就是这个原因:

https://segmentfault.com/q/1010000044054768/a-1020000044063407

只不过当时这个问题里题主是直接用的 Webpack,你现在如果是要是用 vue-cli 脚手架的话要改的地方也是一样的(vue-cli 背后就是 Webpack)。

 类似资料:
  • 主要内容:v-on,v-on,v-on,v-on,实例,实例我们可以使用 v-on 指令来监听 DOM 事件,从而执行 JavaScript 代码。 v-on 指令可以缩写为 @ 符号。 语法格式: v-on <div id="app"> <button @click="counter += 1">增加 1</button> <p>这个按钮被点击了 {{ counter }} 次。</p> </div> <script> const app = { dat

  • Vite + Vue3 + Electron 打包后静态资源路径错误 图片 src 如果是动态拼接的话,路径指向会出现问题 第一个路径不正确:file:///G:/vite.svg 第二个路径为:file:///G:/vite-electron/release/win-unpacked/resources/app.asar/dist/vite.svg 还有这种字体文件导入也会出现问题,类似上面直接

  • 问题内容: 我使用的是SQL Server 2005 Service Pack2(SP2)(v9.0.3042),那里发布的解决方案对我不起作用。我尝试使用两个连接字符串。我的代码中有一个被注释掉了。 我意识到我可以将所有结果存储在内存中的List或ArrayList中,然后将其返回。我已经成功地做到了,但这不是这里的目标。目标是能够在结果可用时流式传输。 使用我的SQL Server版本可以吗?

  • vue3 实现可拖拽 树形结构数据,无论拖拽子集或者父级,拖动的都是当前对象,父子没有关联关系,如何实现呢?或有什么插件支持? vue3-draggable-next,好像只支持列表,不支持树形结构

  • 使用vite打包后转成了 但是转化的 语法在老浏览器不支持(es6 不支持 static 声明类变量),请求有知道如何解决的吗? 我尝试了使用babel,但是不知道如何配置

  • vue3+vite打包的时候,报错Access is denied,请问怎么解决啊?重新装了node_modules包,用nvm试了npm的几个版本都不行

  • 为el-transfer添加了一个右侧列表上下排序的功能,但是点击之后数组数据更新了,视图却没刷新.代码如下:

  • 主要内容:src/APP.vue 文件代码,src/APP.vue 文件代码上一章节中我们使用了 npm 安装项目(Vue-cli 和 Vite),我们在 IDE(Vscode、Atom等) 中打开该目录,结构如下所示: 命令行工具 vue-cli(runoob-vue3-test): Vite(runoob-vue3-test2) 目录解析 目录/文件 说明 build 项目构建(webpack)相关代码 config 配置目录,包括端口号等。我们初学可以使用默认的。