Compose asynchronous functions in JavaScript
asyncpipe
composes asynchronous functions, a perfect fit for functional
programming with Promises or async
/await
. It was inspired by lodash.flow
,
which is excellent but does not support functions that return Promises.
Yes. This module:
- is small
- is tested with continuous integration
- works on Node.js v4+
- does not need to be built/transpiled
- does not have any production dependencies
This is a Node.js module available through the
npm registry. Installation is done using the
npm install
command:
$ npm install asyncpipe
var asyncpipe = require('asyncpipe');
Compose an asynchronous function from the series of input arguments (func1
,
func2
, ...).
Any error thrown within the series of async functions will be thrown by the composed function.
const asyncpipe = require('asyncpipe');
(async () => {
const a = x => x + 1;
const b = x => Promise.resolve(x * 2);
const c = async x => {
await someExternalService(x);
return x;
};
const result = await asyncpipe(a, b, c)(99);
console.log(result); // PRINTS: 200
})();