- 小程序请求的流式数据onChunkReceived返回的如何处理?
[图片] [图片]
2023-06-29 - wx.request流式返回的坑这么多吗?
1、RequestTask.onChunkReceived() 注册的函数在:开发者工具、安卓、iOS上均不运行。我以为代码问题,调试好久才发现在Mac真机调试时时没有问题的。已经是最简单的测试代码了,都不运行。 2、iOS、Mac真机环境没有TextDecoder构造函数,开发工具却又有。在Mac真机流式返回了,要转成字符串发现没有TextDecoder,试了iOS环境也没有,不应该啊,难道TextDecoder还要自己实现? 3、RequestTask.onChunkReceived() 流式返回,发现返回的ArrayBuffer的实际大小和Header中的Content-Length不一致,很多时候一个chunk的byteLength就比Content-Length值大了。我还怀疑是Content-Length错了。但同一个资源在浏览器端实际大小就Content-Length完全一样。 这些问题是在封装wx.request过程中发现的。没有遇到过的就不用说了,基本可以排除是代码的问题了。要么各种环境下官方没有对齐,要么是wx.request的bug。 机型:iPhone15 iOS17.3.1、MacBook Pro M1 系统版本Mac os 14.4 (23E214) 开发工具版本:(1.06.2402040 darwin-arm64) 调试基础库:2.33.0--3.4.0都试过 代码段(因分享大小限制,删除了TS类型文件,所以会报TS错,不影响运行):https://developers.weixin.qq.com/s/vORaygmO7AQG onChunkReceived不运行的代码: originRequest(){ const requestTask = wx.request({ url: 'https://picsum.photos/340/195', enableChunked: true, success(res){ console.log('success:', res) }, fail(err){ console.warn('fail:', err); } }); requestTask.onHeadersReceived(h=>console.log('header', h)) requestTask.onChunkReceived((chunk)=>console.log('chunk', chunk)) } Mac真机环境没有TextDecoder的报错: [图片] Mac真机环境chunk和Content-Length不一致: [图片]
2024-04-07 - 关于onChunkReceived在不同客户端输出结果不一致bug
1.代码复现片段 [图片] 2.开发者工具console结果展示 [图片] 3.安卓consoel结果展示 [图片] 4.苹果console结果展示 [图片] 目前遇到的主要问题是ios与安卓结果不一致无法进行处理
02-25 - 小程序基础库 3.7.4 更新
小程序基础库 3.7.4 已经开始灰度开发者,请大家基于业务情况关注相关变更。如遇问题请及时在本帖下方留言或在 小程序交流专区 发表标题包含「基础库3.7.4」的帖子反馈。本次更新如下: 更新 框架 小游戏安卓真机调试支持 Tracing 和网络更新 框架 小游戏 wx.getGameLogManager 修改API设计 详情 更新 框架 Android 上提高 request、downloadFile、uploadFile 并行请求数量上限更新 框架 渲染缓存新增 capture 模式 详情更新 框架 鸿蒙支持 worker更新 框架 小游戏支持KHR_parallel_shader_compile 拓展修复 框架 iOS request enableChunked onChunkReceived 回调丢失 详情 微信团队 2024年12月31日
01-07