浏览代码

fix: use more compatible ReadableStream iteration method

nshcr 1 年之前
父节点
当前提交
0cd1bdd92c
共有 1 个文件被更改,包括 9 次插入2 次删除
  1. 9 2
      src/utils.ts

+ 9 - 2
src/utils.ts

@@ -100,8 +100,15 @@ export const parseJSON = async function* <T = unknown>(
   const decoder = new TextDecoder('utf-8')
   const decoder = new TextDecoder('utf-8')
   let buffer = ''
   let buffer = ''
 
 
-  // TS is a bit strange here, ReadableStreams are AsyncIterable but TS doesn't see it.
-  for await (const chunk of itr as unknown as AsyncIterable<Uint8Array>) {
+  const reader = itr.getReader()
+
+  while (true) {
+    const { done, value: chunk } = await reader.read()
+
+    if (done) {
+      break
+    }
+
     buffer += decoder.decode(chunk)
     buffer += decoder.decode(chunk)
 
 
     const parts = buffer.split('\n')
     const parts = buffer.split('\n')