收藏
回答

requestTask.onChunkReceived为什么真机和开发者工具触发的次数不一样?

 这个时真机返回的数据,并且数据被切割了

这个时模拟器触发的,每次都是完整的


 // 2. 发起分块流式请求

    const requestTask = wx.request({

      url: `https://lawapi.chkjnotary.com/api/MiniProgram/Chat/Contract/Inspect/SimpleTest`,

      method: "POST",

      header: {

        Accept: "text/event-stream",

        "Auth-token": '65d0e62d283542bfb4eb74ca705201847',

        'Content-Type': 'text/plain; charset=utf-8;'

      },

      data,

      dataType: "json",

      responseType: "text",

      enableChunked: true,

      success(res) {

        console.log("连接成功")

      },

      fail(err) {

        console.error("请求失败:", err)

      },

    })

    // 3. 监听数据流(核心逻辑)

    requestTask.onChunkReceived(async (res) => {

      console.log('res', res.data);

    })


回答关注问题邀请回答
收藏

1 个回答

  • sun
    sun
    发表于小程序端
    星期六 09:26

    流式数据传输就是这样的,流式传输是不保证数据的顺序的。例如你传输的是1,2,3,可能收到的是3,1,2。需要开发者自行在前端做逻辑自行处理数据顺序。

    星期六 09:26
    有用
    回复 2
    • x
      x
      1天前
      你说的这个我知道的,但是现在是用一个数据,在真机和模拟器,onChunkReceived触发的频率不一样,它返回的字节流的大小很大区别
      1天前
      回复
    • sun
      sun
      发表于小程序端
      1天前回复x

      这也是正常的。流式传输服务器发送一次数据,客户端可能会分多次收到。

      1天前
      回复
登录 后发表内容