最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

前端使用fetch接收流式數(shù)據(jù)處理實(shí)例demo

 更新時(shí)間:2025年02月27日 08:27:17   作者:xiaoliyo_  
這篇文章主要介紹了前端使用fetch接收流式數(shù)據(jù)處理的相關(guān)資料,文中描述了一個(gè)流式數(shù)據(jù)處理的demo,需要后端服務(wù)配合進(jìn)行接口調(diào)試,需要的朋友可以參考下

流式數(shù)據(jù)

流式數(shù)據(jù)是指以連續(xù)的方式產(chǎn)生和傳輸?shù)臄?shù)據(jù),這類數(shù)據(jù)通常在實(shí)時(shí)或接近實(shí)時(shí)的情況下進(jìn)行處理

代碼部分

這是我測(cè)試用的demo,需要后端配合起來(lái)一個(gè)服務(wù),進(jìn)行接口調(diào)試,下面我把整個(gè)demo打包出來(lái)

 async getText() {
      const decoder = new TextDecoder("utf-8")
      try {
        const test = "1"
        const stream = await getAiText(test) // 獲取流
        const reader = stream.getReader() // 獲取流的讀取器

        // 讀取流數(shù)據(jù)的函數(shù)
        const read = async () => {
          const { done, value } = await reader.read() // 讀取下一個(gè)數(shù)據(jù)塊
          if (done) {
            console.log("Stream complete")
            return
          }
          const chunk = decoder.decode(value, { stream: true })
          console.log(chunk)//查看數(shù)據(jù)輸出
          setTimeout(() => {
            this.text += chunk // 更新 text
          }, 200)
          read() // 繼續(xù)讀取下一個(gè)數(shù)據(jù)塊
        }

        read() // 開(kāi)始讀取流數(shù)據(jù)
      } catch (error) {
        console.error("Error fetching AI text:", error)
      }
    },

demo,壓縮包整不了,看代碼吧

//我這里做了個(gè)跨域,vite.config.js
// https://vitejs.dev/config/
export default defineConfig({
    plugins: [vue(),

    ],
    server: {
        host: "0.0.0.0",
        proxy: {
            '/stream3': {
                target: 'xxxxxxxxxxx', // 目標(biāo)服務(wù)器地址
                changeOrigin: true, // 允許跨域
                rewrite: (path) => path.replace(/^\/api/, '') // 去掉請(qǐng)求路徑中的/api前綴
            },
        }
    },
})

//封裝導(dǎo)出請(qǐng)求方法
export const getAiText = async (text) => {
    const response = await fetch('/stream3', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({ test: text }),
    })
    return response.body // 返回 ReadableStream
}
//組件頁(yè)面引入
<template>
  <div class='HelloWorld_wrap'>
    <h1 @click="getText()">點(diǎn)擊</h1>
    {{text}}
  </div>
</template>
<script >
import { getAiText } from "../http/testAi"
import {
  defineComponent,
  ref,
  onMounted,
  onUpdated,
  toRefs,
  reactive,
} from "vue"
export default defineComponent({
  name: "HelloWorld",
  props: {},
  data() {
    return {
      text: "",
    }
  },
  methods: {
    async getText() {
      const decoder = new TextDecoder("utf-8")
      try {
        const test = "1"
        const stream = await getAiText(test) // 獲取流
        const reader = stream.getReader() // 獲取流的讀取器

        // 讀取流數(shù)據(jù)的函數(shù)
        const read = async () => {
          const { done, value } = await reader.read() // 讀取下一個(gè)數(shù)據(jù)塊
          if (done) {
            console.log("Stream complete")
            return
          }
          const chunk = decoder.decode(value, { stream: true })
          console.log(chunk)//查看數(shù)據(jù)輸出
          setTimeout(() => {
            this.text += chunk // 更新 text
          }, 200)
          read() // 繼續(xù)讀取下一個(gè)數(shù)據(jù)塊
        }

        read() // 開(kāi)始讀取流數(shù)據(jù)
      } catch (error) {
        console.error("Error fetching AI text:", error)
      }
    },
  },
  mounted() { },
});
</script>
<style lang="scss" scoped>
</style>
//最后app.vue引入
<script setup>
import HelloWorld from './components/HelloWorld.vue'
</script>

<template>
  <HelloWorld />
</template>

總結(jié) 

到此這篇關(guān)于前端使用fetch接收流式數(shù)據(jù)處理的文章就介紹到這了,更多相關(guān)前端fetch接收流式數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 跟我學(xué)習(xí)JScript的Bug與內(nèi)存管理

    跟我學(xué)習(xí)JScript的Bug與內(nèi)存管理

    跟我學(xué)習(xí)JScript的Bug與內(nèi)存管理,小編對(duì)JScript的Bug與內(nèi)存管理也不甚了解,所以整理了本篇文章,希望可以解決大家學(xué)習(xí)時(shí)的困擾。
    2015-11-11
  • zepto.js中tap事件阻止冒泡的實(shí)現(xiàn)方法

    zepto.js中tap事件阻止冒泡的實(shí)現(xiàn)方法

    這篇文章主要介紹了zepto.js中tap事件阻止冒泡的實(shí)現(xiàn)方法,實(shí)例分析了由冒泡產(chǎn)生的click延遲解決方法,需要的朋友可以參考下
    2015-02-02
  • Bootstrap表單控件使用方法詳解

    Bootstrap表單控件使用方法詳解

    Bootstrap讓W(xué)eb開(kāi)發(fā)更迅速、更簡(jiǎn)單,這篇文章主要為大家詳細(xì)介紹了Bootstrap表單控件,用來(lái)與用戶做交流的一個(gè)網(wǎng)頁(yè)控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • JavaScript關(guān)于提高網(wǎng)站性能的幾點(diǎn)建議(一)

    JavaScript關(guān)于提高網(wǎng)站性能的幾點(diǎn)建議(一)

    這篇文章主要介紹了JavaScript關(guān)于提高網(wǎng)站性能的幾點(diǎn)建議(一)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • javascript-簡(jiǎn)單的計(jì)算器實(shí)現(xiàn)步驟分解(附圖)

    javascript-簡(jiǎn)單的計(jì)算器實(shí)現(xiàn)步驟分解(附圖)

    輸入內(nèi)容的判斷,對(duì)于事件對(duì)象的來(lái)源的判斷以及數(shù)學(xué)運(yùn)算“+,-,*,/”的使用,感興趣的朋友可以學(xué)習(xí)下
    2013-05-05
  • Echarts基本入門(mén)之柱狀圖、折線圖通用配置

    Echarts基本入門(mén)之柱狀圖、折線圖通用配置

    現(xiàn)在各種框架各種庫(kù)都很強(qiáng)大,但是也因?yàn)楣δ軓?qiáng)大,導(dǎo)致很多配置都過(guò)于繁重,真正有用的就那么幾個(gè),這篇文章主要給大家介紹了關(guān)于Echarts基本入門(mén)之柱狀圖、折線圖通用配置的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • GoJs連線上的信息展示使用詳解

    GoJs連線上的信息展示使用詳解

    這篇文章主要為大家介紹了GoJs連線上的信息展示使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • JS中confirm,alert,prompt函數(shù)區(qū)別分析

    JS中confirm,alert,prompt函數(shù)區(qū)別分析

    JS中confirm,alert,prompt函數(shù)使用區(qū)別有哪些呢?
    2011-01-01
  • Javascript blur與click沖突解決辦法

    Javascript blur與click沖突解決辦法

    這篇文章主要介紹了Javascript blur與click沖突解決辦法的相關(guān)資料,在開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到blur與click 沖突的情況,這里舉了幾個(gè)例子,和解決辦法,需要的朋友可以參考下
    2017-01-01
  • 詳解JavaScript 新語(yǔ)法之Class 的私有屬性與私有方法

    詳解JavaScript 新語(yǔ)法之Class 的私有屬性與私有方法

    這篇文章主要介紹了JavaScript 新語(yǔ)法之Class 的私有屬性與私有方法 ,本文通過(guò)實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04

最新評(píng)論

肇庆市| 芷江| 通辽市| 永善县| 会理县| 曲阳县| 洱源县| 县级市| 荔波县| 东至县| 青龙| 彰化市| 岗巴县| 米易县| 锡林浩特市| 延寿县| 湘潭市| 安龙县| 景宁| 武穴市| 龙陵县| 沐川县| 郁南县| 林口县| 广水市| 仙居县| 广丰县| 广灵县| 宁晋县| 巴青县| 奎屯市| 翁牛特旗| 海门市| 德安县| 景德镇市| 周宁县| 柳河县| 叶城县| 云霄县| 曲阳县| 修水县|