- From: Yutaka Hirano <notifications@github.com>
- Date: Fri, 04 Jun 2021 07:28:16 -0700
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/pull/1132/review/676346984@github.com>
@yutakahirano commented on this pull request. > @@ -4421,7 +4441,8 @@ the {{WritableStream}}'s public API. 1. [=Reject=] |stream|.[=WritableStream/[[inFlightCloseRequest]]=] with |error|. 1. Set |stream|.[=WritableStream/[[inFlightCloseRequest]]=] to undefined. 1. Assert: |stream|.[=WritableStream/[[state]]=] is "`writable`" or "`erroring`". - 1. If |stream|.[=WritableStream/[[pendingAbortRequest]]=] is not undefined, + 1. If |stream|.[=WritableStream/[[pendingAbortRequest]]=] is not undefined and |error| is not an ``` let reject; close_promise = new Promise((res, rej) => reject = rej); const ws = new WritableStream({ start(c) { c.signal.addEventListener('abort', () => { const abort_error = new DOMException('foobar', 'AbortError'); reject(abort_error); }); }, close() { return close_promise; } }); const writer = ws.getWriter(); writer.close(); const reason = Exception('hoge'); writer.abort(reason); ``` In this example, I think it's natural that `writer.closed` will be rejected by `reason`, but without this clause it'll be rejected with `abort_error`. Another solution would be to expose `pendingAbortRequest.reason` in the controller so that the underlying sink can reject the result of `close()` with that. -- 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/1132#discussion_r645615674
Received on Friday, 4 June 2021 14:30:37 UTC