fix(task_manager): allow tasks to sometimes fail via return value #23
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.
π Linked issue
fixes #22
β Type of change
π Description
i've basically just merged the 3 possible promise return types into one promise type with a union result type.
this allows async tasks submitted via the task manager to have both success and failure return branches; before this PR async tasks could only either always fail via return value, or always return success via return value and fail by throwing an exception - using
task.error()
(wheretask
is the parameter given to task callbacks) was basically impossible in actual async applications.i've also added a typecheck-only test that verifies that submitting a non-deterministic async task is possible.
this test will never fail during
npm run test
checks, but may emit errors innpm run typecheck
insteadπ Checklist