work around context loss with async-listener #21
Merged
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.
async-listener is important module for APM tools and for long
stack traces. Promises make the concept of a long-stack-trace ambiguous
– as you can conceive the
then
callback as a continuation of eitherthe resolution context or the context that queued the
then
callback (more details).
async-listener defaults to the resolution context. This is the wrong
default for how we are using promises here, resuling in APM tools
like Stackdriver Trace losing context.
We work-around the problem by not using the promise after it has
resolved.
R= @matthewloring