Child process errors should reject the promise right away #270
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With #157 and #199 we had the following issue: the top-level promise would not be rejected right away when timing out. It would instead wait for stdout/stderr streams to close first.
We fixed this, but the same problem is still happening with child process errors. If a child process receives an
error
event, we should reject the promise right away, and not wait for stdout/stderr streams to close first (which might never happen when using a long-running command).This PR fixes this. As an added bonus, it improves the deferred pattern introduced by #199 that @sindresorhus was warning against.