@betty-blocks/utils-promise
v0.4.0
Published
Promise utilities
Downloads
4
Maintainers
Keywords
Readme
@jumpn/utils-promise
Promise utilities
NOTE: All the functions described in API are curried
Installation
Using npm
$ npm install --save @jumpn/utils-promise
Using yarn
$ yarn add @jumpn/utils-promise
Types
type Deferred<Result> = {
promise: Promise<Result>,
resolve: (result: Result) => void,
reject: (error: any) => void
};
type PromiseInfo<Result> = {
result: Result,
status: void | "rejected" | "resolved"
};
API
allByName
Returns a promise that will be resolved with an object the results of all the given promises or it will reject with an Error that will have an additional property "from" with the name of the promise that caused the rejection.
Parameters
promisesByName
PromisesByName
Returns Promise<ResultsByName>
booleanize
Returns a new promise which follows the one given returning true in case there was no error, or false otherwise
Parameters
promise
Promise<any>
chain
Chains all promises starting from initialPromise and binding chainers to next methods
Parameters
Returns Promise<any>
createDeferred
Creates a Deferred
Returns Deferred<any>
promisifyFunction
Returns a new function that:
- if last argument is a callback => it will mimic the function given.
- if last argument is not a callback => it will return a promise which will be resolved or rejected following the execution of the function given.
Parameters
fn
function (): Result
promisifyObject
Returns a new object with the result of having promisified all the methods of the one given.
Parameters
object
Object
Returns Object
track
Returns an object with status and value properties that are updated as soon as the promise is resolved or rejected
Parameters
promise
Promise<Result>
Returns PromiseInfo<$Supertype<Result>>
promiseTry
Returns a promise that will be resolved with the result of execute, or rejected with the error thrown by it (if any).
Parameters
execute
function (): Result
Returns Promise<Result>
License
MIT :copyright: Jumpn Limited / Mauro Titimoli ([email protected])