Bug 1809673 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

```js
await (async () => {
  const reader = new Response("HELLO").body.getReader({ mode: "byob" });
  let done;
  while (!done) {
    console.log("not done");
    // await new Promise(setTimeout)
    done = (await reader.read(new Uint8Array(8))).done;
  }
  console.log("done");
})()
```
Somehow this only emits a single "not done" message and never ends, but it works when adding a setTimeout before the next read call.

Needs to be investigated.
```js
await (async () => {
  const reader = new Response("HELLO").body.getReader({ mode: "byob" });
  let done;
  while (!done) {
    // await new Promise(setTimeout)
    const result = await reader.read(new Uint8Array(8));
    done = result.done;
    console.log(result);
  }
})()
```
Somehow this only emits a single "not done" message and never ends, but it works when adding a setTimeout before the next read call.

Needs to be investigated.
```js
await (async () => {
  const reader = new Response("HELLO").body.getReader({ mode: "byob" });
  let done;
  while (!done) {
    // await new Promise(setTimeout)
    const result = await reader.read(new Uint8Array(2));
    done = result.done;
    console.log(result);
  }
})()
```
Somehow this only emits `done: false` but never emits `done: true`, but it works when adding a setTimeout before the next read call.

Needs to be investigated.
```js
await (async () => {
  const reader = new Response("HELLO").body.getReader({ mode: "byob" });
  let done;
  while (!done) {
    // await new Promise(setTimeout)
    const result = await reader.read(new Uint8Array(2));
    done = result.done;
    console.log(result);
  }
})()
```
Without setTimeout: 3 chunks "HE", "LL", "O" are read but then it stalls
With setTimeout: 1 chunk "HE" is read and then it ends, losing everything else.

Needs to be investigated.

Back to Bug 1809673 Comment 0