首页 > 解决方案 > 无法使用 JavaScript 的 ReadableStream 将 StreamingResponseBody 流转换为 JSON

问题描述

后端 API 使用 Java 的 StreamingResponseBody 发送(JSON)流。我想使用 javascript(在前端)将流的块转换为正确的 JSON 格式。但是,它不起作用。这是我使用的代码:

function getData () {
 fetch("MY_URL")
   .then(response=>{
      const reader = response.body.getReader();
      return new ReadableStream({
         start(controller) {
            return pump();
            function pump() {
              return reader.read().then({done, value}) => {
                  if(done){
                     controller.close();
                     console.log("Done");
                     return;
                  }
                  const chunk = new TextDecoder("utf-8").decode(value);
                  console.log(JSON.parse(JSON.stringify(chunk)));

                  controller.enqueue(value);
                  return pump();
              });
            }
         }
      });
     }).catch(err=>console.log(err));
} 

我该如何修复它,以便它可以将块转换为 JSON?

标签: javascriptjavajsonparsing

解决方案


推荐阅读