Re: [whatwg/streams] Rewrite to use Web IDL, and generally modernize (#1035)

@MattiasBuelens commented on this pull request.



> @@ -892,7 +896,70 @@ option. If {{UnderlyingSource/type}} is set to undefined (including via omission
  </div>
 </div>
 
-<!-- TODO async iterator stuff -->
+<h4 id="rs-asynciterator" oldids="rs-asynciterator-prototype,
+default-reader-asynciterator-prototype-internal-slots">Asynchronous iteration</h4>
+
+<dl class="domintro">
+ <dt><code>for await (const <var ignore>chunk</var> of <var ignore>stream</var>) { ... }</code>
+ <dt><code>for await (const <var ignore>chunk</var> of <var ignore>stream</var>.values([{ {{ReadableStreamIteratorOptions/preventCancel}} }])) { ... }</code>

Ooooh right, I see it know. There's a similar thing going on with `reader = stream.getReader([{ mode: "byob" }])`, but for some reason I didn't interpret that as an array. I think seeing the lengthy `for await of` construct around it made me interpret the whole thing as a line of JavaScript, rather than a signature with optional arguments.

It seems like the syntax used in these non-normative sections is a bit ambiguous, since we use square brackets for both optionality and arrays:
* `stream = new ReadableStream(underlyingSource[, strategy])` (optionality)
* `[branch1, branch2] = stream.tee()` (array return value)

Then again, I can't immediately come up with a better way to present this. 🤷 
(Something like `{ preventCancel }?` would work in TypeScript, but that's not a thing in JavaScript.)

-- 
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/1035#discussion_r413223724

Received on Wednesday, 22 April 2020 18:35:51 UTC