Ability to exit a Step chain before finishing all registered steps#43
Open
diogogmt wants to merge 1 commit intocreationix:masterfrom
Open
Ability to exit a Step chain before finishing all registered steps#43diogogmt wants to merge 1 commit intocreationix:masterfrom
diogogmt wants to merge 1 commit intocreationix:masterfrom
Conversation
…Step chain of callbacks.
|
I don't see why any new support needs to be added. You should already be able to exit from the middle of a step chain. All your step functions (except the first and last ones) should follow this pattern: The last step function should look like: In any step function (except the last one), you can just throw an error if you need to exit from the chain. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 started to convert all the asynchronous calls of a project I'm currently working on to use Step.
Everything worked perfectly. However we had some problems in the following use case:
We need to perform three asynchronous calls to a database before we did some calculations.
Sometimes, during the second async call, an error would occur and we needed to stop executing and send a message back to the client.
The problem was that if we returned from the function that caught the error, it would go on to execute the next Step call. We wanted to stop the execution completely and send a response back to the client indicating the error.
The proposed patch adds a new function to the |next| object.
The exitChain function clears the array with the registered Step calls, thus stopping the execution whenever exitChain is called.
I also added a unit test to check the new feature.