- From: Mattias Buelens <notifications@github.com>
- Date: Wed, 15 Feb 2023 06:37:00 -0800
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/issues/1255/1431470151@github.com>
> Putting it around the function `logChunks()` that does the iteration does not work - any thoughts why (hope this is not some blindingly obvious JavaScript thing.
This might be a silly question, but are you `await`ing the result of `logChunks()`? That is:
```js
try {
await logChunks();
} catch (error) {
console.error("Oh no!");
}
```
Because if you don't `await` it, then the returned promise won't be used and you'll (at best) get an unhandled promise rejection in the console.
> I am pretty sure we designed Web IDL's async iterator machinery this way, to make it follow JavaScript async generators.
Right, of course, I should have compared with async *generators*. 😅 I suppose we can't depart from those semantics.
How do we feel about adding an `AbortSignal` in the mix? 🤔 We could add an abort algorithm that is pretty much the same as our [asynchronous iterator return](https://streams.spec.whatwg.org/#rs-asynciterator) steps, except that we don't assert that `[[readRequests]]` is empty (which is no longer necessary as of #1168).
However, I'm a bit worried about how that would compose. Would the proposed `ReadableStream.from()` method need to accept an optional `AbortController` argument, so it can early-abort the given async iterator on `cancel()`?
```js
const readable1 = new ReadableStream({ /* ... */ });
const controller = new AbortController();
const iterator = readable1.values({ signal: controller.signal });
const readable2 = ReadableStream.from(iterator, { controller });
// readable2 behaves like readable1, and cancelling readable2 immediately cancels readable1
```
--
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/streams/issues/1255#issuecomment-1431470151
You are receiving this because you are subscribed to this thread.
Message ID: <whatwg/streams/issues/1255/1431470151@github.com>
Received on Wednesday, 15 February 2023 14:37:12 UTC