- From: Mattias Buelens <notifications@github.com>
- Date: Mon, 11 Oct 2021 15:26:59 -0700
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/pull/1083/review/776709774@github.com>
@MattiasBuelens commented on this pull request. > @@ -475,6 +481,8 @@ The Web IDL definition for the {{ReadableStream}} class is given as follows: interface ReadableStream { constructor(optional object underlyingSource, optional QueuingStrategy strategy = {}); + static ReadableStream from(any asyncIterable); I don't feel like there's much precedent for an API that accepts two *different* types of objects (`Iterable or FromInit`). What should happen if you pass an object that is *both* `Iterable` and `FromInit`? ```javascript const readable = ReadableStream.from({ source: iter1, [Symbol.iterator]: () => iter2 }); // will this iterate over iter1 or iter2? ``` What's the `autoAllocateChunkSize` for? We don't really have a way to expose the BYOB request to the async iterable. Or do you expect it to be passed as an argument to `next()`? ```javascript const readable = ReadableStream.from({ type: bytes, autoAllocateChunkSize: 1024, iter: { next(view) { // view is controller.byobRequest.view // Fill it with some data view[0] = 0xaa; view[1] = 0xbb; view[2] = 0xcc; // Return the filled sub-view. // (This doesn't currently work, since enqueue() transfers the given view's buffer // and the first pull-into descriptor's buffer separately.) return { done: false, value: view.subarray(0, 3) }; }, [Symbol.iterator]() { return this; } } }); ``` -- 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/streams/pull/1083#discussion_r726608827
Received on Monday, 11 October 2021 22:27:12 UTC