@andimeier/promise-chain
v0.0.1
Published
flexible configuration of chained and parallel promises
Downloads
12
Readme
Promise-chain
This lib aims to make a network of promises easily configurable. Rejection of a promise should not lead per se to an overall rejection, but you can define an "on reject" handler (another promise following in the "reject" case).
Terminology
- "chain" ... the chained promises
- "chain item" ... one promise plus its metadata for linking it within the chain
Basic Usage
Include the lib in your app:
const promiseChain = require('promise-chain');
You can switch on debugging output with:
const promiseChain = require('promise-chain');
promiseChain.setDeubg(true);
Specifying a promise chain
A "chain item" is nothing else than a promise returning function plus a couple of properties which define the chaining behavior.
Recognized properties are:
promise
... {function} the promise returning functiononResolve
... {ChainItem} the next chain item to be executed on success of the current itemonReject
... {ChainItem} the next chain item to be executed if the current item rejectsname
...{string} an identifier string. This is used a the key for the errors objectsetError
... {boolean} if set, a rejected promise will even be registered in theerrors
structure of the result object if it has anonReject
successor. If false,a rejected promise with aonReject
successor will not produce an error. A rejected promise without anonReject
setting will always produce an error. Default is false.errorKey
... {string} (optional) if set then this key will be used in the errors objects. If this property is omitted, the propertyname
will be used per default. This property should help you collecting possibly many promises in the chain into one error "candidate". For example, to populate input fields in a HTML form, it helps to assign several tests for one field to the one field name. In this case, you would seterrorKey
according to the name of the HTML form field while leavingname
uniqu (for tracking and debugging purposes)
Returned result object:
errors
... an object consisting of all error objects of the rejected promises. Key is the chain link name (propertyname
) and value is the rejection value, whatever this issuccess
... an array listing all resolved promises