New: ResultAsync.fromPromiseResult static method #662
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.
Closes #608
It's not uncommon to write an async function with serial
awaitbecause the second call depends on the first, where you're try/catch handlers returnok()orerr()respectively. The return type isPromise<Result<T, E>>, but you desire it to beResultAsync<T, E>.The
ResultAsync.fromPromiseResultstatic method wraps aPromise<Result<T, E>>returning function, returning a function with the same arguments, and returning the desiredResultAsync<T, E>.Also available as a standalone function
import { fromPromiseResult } from 'neverthrow'Example:
The Method Name:
As the saying goes, naming things is hard.
fromPromiseResultis just what I came up with for this function. There is probably a better one out there. I'm very open to suggestions