Re: [whatwg/fetch] Editorial: Amend body reading to use no-promise version (PR #1569)

@annevk commented on this pull request.

I think this works, nice! Couple nits left.

>  
- <dt><i>FormData</i>
- <dd>
-  <p>If <var>mimeType</var>'s <a for="MIME type">essence</a> is "<code>multipart/form-data</code>",
-  then:
+ <li><p>If <var>object</var>'s <a for=Body>body</a> is null, then run <var>successSteps</var>
+ with an empty <a for=/>byte sequence</a>, and return.

You need to return _promise_ here.

>  
- <dt><i>FormData</i>
- <dd>
-  <p>If <var>mimeType</var>'s <a for="MIME type">essence</a> is "<code>multipart/form-data</code>",
-  then:
+ <li><p>If <var>object</var>'s <a for=Body>body</a> is null, then run <var>successSteps</var>
+ with an empty <a for=/>byte sequence</a>, and return.
+
+ <li>Let <var>errorSteps</var> given <var>error</var> be to <a>reject</a> <var>promise</var> with
+ <var>error</var>.

If you define these before _successSteps_ you can invoke them as part of defining _successSteps_.

> + <li><p>If <var>object</var>'s <a for=Body>body</a> is null, then run <var>successSteps</var>
+ with an empty <a for=/>byte sequence</a>, and return.
+
+ <li>Let <var>errorSteps</var> given <var>error</var> be to <a>reject</a> <var>promise</var> with
+ <var>error</var>.
+
+ <li><p><a for=body>Fully read</a> <var>object</var>'s <a for=Body>body</a> given
+ <var>successSteps</var>, <var>errorSteps</var>, and <var>object</var>'s
+ <a>relevant settings object</a>'s <a for="environment settings object">global object</a>.
+
+ <li><p>Return <var>promise</var>.
+</ol>
+
+<p>The <dfn method for=Body><code>arrayBuffer()</code></dfn> method steps are to return the result
+of running <a for=Body>consume body</a> with <a>this</a> and the following step given a
+<a for=/>byte sequence</a> <var>bytes</var>: Return a new {{ArrayBuffer}} whose contents are

```suggestion
<a for=/>byte sequence</a> <var>bytes</var>: return a new {{ArrayBuffer}} whose contents are
```

>  
+<p>The <dfn method for=Body><code>blob()</code></dfn> method steps are to return the result
+of running <a for=Body>consume body</a> with <a>this</a> and the following step given a
+<a for=/>byte sequence</a> <var>bytes</var>: Return a {{Blob}} whose contents are <var>bytes</var>

```suggestion
<a for=/>byte sequence</a> <var>bytes</var>: return a {{Blob}} whose contents are <var>bytes</var>
```

>  
+<p>The <dfn method for=Body><code>blob()</code></dfn> method steps are to return the result
+of running <a for=Body>consume body</a> with <a>this</a> and the following step given a
+<a for=/>byte sequence</a> <var>bytes</var>: Return a {{Blob}} whose contents are <var>bytes</var>
+and whose {{Blob/type}} attribute is <a>this</a>'s <a for=Body>MIME type</a>.
+
+<p>The <dfn method for=Body><code>formData()</code></dfn> method steps are to return the result of
+running <a for=Body>consume body</a> with <a>this</a> and the following step given a
+<a for=/>byte sequence</a> <var>bytes</var>: switch on <a>this</a>'s <a for=Body>MIME type</a>'s
+<a for="MIME type">essence</a>:

and run the corresponding steps*

> + <li>Let <var>errorSteps</var> given <var>error</var> be to <a>reject</a> <var>promise</var> with
+ <var>error</var>.
+
+ <li><p><a for=body>Fully read</a> <var>object</var>'s <a for=Body>body</a> given
+ <var>successSteps</var>, <var>errorSteps</var>, and <var>object</var>'s
+ <a>relevant settings object</a>'s <a for="environment settings object">global object</a>.
+
+ <li><p>Return <var>promise</var>.
+</ol>
+
+<p>The <dfn method for=Body><code>arrayBuffer()</code></dfn> method steps are to return the result
+of running <a for=Body>consume body</a> with <a>this</a> and the following step given a
+<a for=/>byte sequence</a> <var>bytes</var>: Return a new {{ArrayBuffer}} whose contents are
+<var>bytes</var>.
+
+<p class="note">The above method may <a>reject</a> with a {{RangeError}}.

```suggestion
<p class="note">The above method can reject with a {{RangeError}}.
```

>  
-<p>The <dfn method for=Body><code>json()</code></dfn> method steps are to return the result of
-running <a for=Body>consume body</a> with <a>this</a> and <i>JSON</i>.
+<p class="note">The above method may <a>reject</a> with a {{SyntaxError}}.

```suggestion
<p class="note">The above method can reject with a {{SyntaxError}}.
```

> +<p>The <dfn id=concept-body-consume-body for=Body>consume body</dfn> algorithm, given a {{Body}}
+<var>object</var> and <var>convertBytesToJSValue</var>, which is an algorithm that accepts a
+<a for=/>byte sequence</a> and returns a JavaScript value or throws an exception, runs these steps:

```suggestion
<p id=concept-body-package-data>The <dfn id=concept-body-consume-body for=Body>consume body</dfn>
algorithm, given an object that includes {{Body}} <var>object</var> and an algorithm that takes a
<a for=/>byte sequence</a> and returns a JavaScript value or throws an exception
<var>convertBytesToJSValue</var>, runs these steps:
```

-- 
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/pull/1569#pullrequestreview-1227495555
You are receiving this because you are subscribed to this thread.

Message ID: <whatwg/fetch/pull/1569/review/1227495555@github.com>

Received on Thursday, 22 December 2022 11:15:31 UTC