Re: [whatwg/fetch] FetchObserver (for a single fetch) (#607)

I have achieved similar results with almost no perf loss using 
```javascript
async function prog(response) {
  store.state.search.viewProg = 0
  const reader = response.body.getReader()
  const contentLengthHeader = response.headers.get('Content-Length')
  const resourceSize = parseInt(contentLengthHeader, 10)
  let res = []
  async function read(reader, totalChunkSize = 0) {
    const { value = {}, done } = await reader.read()
    if (done) {
      store.state.search.viewProg = 0
      let r = Buffer.from(res)
      return JSON.parse(r.toString())
    }

    // push new bytes to res
    const length = value.byteLength
    for (let i = 0; i < length; i++) {
      res.push(value[i])
    }

    const percentComplete = Math.round(
      ((totalChunkSize + length) / resourceSize) * 100,
    )
    store.state.search.viewProg = percentComplete

    return await read(reader, totalChunkSize + length)
  }
  return await read(reader)
}
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/issues/607#issuecomment-582222334

Received on Wednesday, 5 February 2020 03:19:41 UTC