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.
Fixes two errors:
finally
hooks can possibly run twice for same method call if one of them throws. Also afinally
hook if throws activateserror
hooks, this is in conflict with this comment and alsoPromise.finally
andtry/catch/finally
convention. Because currently it is like this (1, 2):error
hook can get a context which is not up to date, if anybefore
hook returns new context object and a service method throws, because errors (1, 2) thrown in a method invocation do no havehook
property set (which should contain a last valid hook context), that's whyerror
hooks end up using an initial hook object.Added fixes and tests for such cases. Also small clean up changes for readability and performance.
A question for future: What are use cases for allowing returning new context object from hook functions where modifying context in place is not as convenient?