- From: Takeshi Yoshino <notifications@github.com>
- Date: Wed, 08 Mar 2017 19:18:34 -0800
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/pull/672/review/25941289@github.com>
tyoshino commented on this pull request.
>
stream._state = 'errored';
stream._storedError = e;
- if (stream._pendingAbortRequest === undefined && stream._writer !== undefined) {
- let readyPromiseIsPending = false;
- if (oldState === 'writable' &&
- WritableStreamDefaultControllerGetBackpressure(stream._writableStreamController) === true) {
- readyPromiseIsPending = true;
+ // TODO(tyoshino): Given that writer.abort() fails immediately when the stream has been errored, shouldn't
> I'm going to assume the question is
Correct, but the situation I'm concerned is when `writer.abort()` is pending due to any in-flight close()/write(). Once they call `controller.error()`, the stream's state transitions to `"errored"`. But until the close()/write() fulfills/rejects the promise it returned and is processed by the stream, we don't reject the `writer.abort()`.
```
const w = writer.write();
const p = writer.abort(); // the abort becomes pending
controller.error(); // the stream becomes errored but abort() is kept pending until sink.write()'s handler is invoked
```
I'm not objecting to this behavior. I just wondered if it's ok that this is inconsistent with `controller.error()` first and then `writer.abort()`, i.e. in reverse order. WritableStreamAbort() returns immediately when the stream is already in the `"errored"` state even before the ongoing close()/write() fulfills/rejects the promise it returned and is processed by the stream.
--
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/672#discussion_r105079238
Received on Thursday, 9 March 2017 03:19:05 UTC