fix: correctly handle error events that happen after response events #14
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.
i wrote a pretty long comment in the code to be sure that the error propagation never gets accidentally removed, and we remember to account for this situation when we eventually refactor this.
this resolves a lot of the
cb() never called
errors, especially those in Windows where i was able to reproduce the bug pretty easily. i suspect there's a similar issue in other operating systems, but was unable to prove it. similarly testing this proved somewhat difficult since the underlying request object is inaccessible from the response object the promise resolves to, so there isn't an easy way to manually trigger this problem.this code is definitely due some refactoring, and as part of that it would be nice to allow access to the raw request and response objects so that we can test this accurately, but that work should not delay getting this fix released.