Support chaining syntax in 9-thenable
#7
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.
The current implementation of
resolve
inThenable
has a major flaw and does not support chaining syntax. It throws an error once called with additional.then
:I was going to add some comments to #4, where this issue had been addressed, but the author seems to have been inactive for the last few years, so I decided to create a new pull request.
The reason for the problem is that the local
next
variable is actually the result of the current resolve function, and not the nextThenable
instance.Such naming also inspired another problem. If the result of the current resolve function has a falsy value it will not pass
if (next)
and the whole following chain will be omitted.I fixed the
resolve
logic to support additional chains and extended the usage example to prove it does work.