- From: Domenic Denicola <notifications@github.com>
- Date: Mon, 16 Mar 2015 06:37:22 -0700
- To: whatwg/streams <streams@noreply.github.com>
- Message-ID: <whatwg/streams/pull/296/r26484018@github.com>
> - if (source.state === 'readable') { > - Promise.race([source.closed, dest.ready]).then(doPipe, doPipe); > - } else if (source.state === 'waiting') { > - Promise.race([source.ready, dest.ready]).then(doPipe); > - } else if (source.state === 'errored') { > - source.closed.catch(abortDest); > - } else if (source.state === 'closed') { > - closeDest(); > - } > - } else if (ds === 'errored' && (source.state === 'readable' || source.state === 'waiting')) { > - dest.closed.catch(cancelSource); > - } else if ((ds === 'closing' || ds === 'closed') && > - (source.state === 'readable' || source.state === 'waiting')) { > - cancelSource(new TypeError('destination is closing or closed and cannot be piped to anymore')); > + lastRead = reader.read(); > + Promise.all([lastRead, dest.ready]).then(([{ value, done }]) => { Fixed by adding ` if (dest.state === 'writable')` below (line 93). All tests still pass as expected. Might be a nicer way to do this algorithm that avoids closedPurposefully by checking dest.state more thoroughly. We will see if that is possible later, I think. When move pipeTo into the main spec seems like a good opportunity. --- Reply to this email directly or view it on GitHub: https://github.com/whatwg/streams/pull/296/files#r26484018
Received on Monday, 16 March 2015 13:37:49 UTC