promizr
v1.1.0
Published
ES6 Promise Extensions and utility methods + Polyfill which strictly follows ES6 specification
Downloads
105
Maintainers
Readme
promizr
Promizr is a modern Promise utility library which provides simple and powerful functions to manage complex async JavaScript.
Promizr provides more than 60 functions including the usual collections operations (map
, reduce
, filter
, each
…) as well as some common patterns for asynchronous control flow (parallel
, series
, waterfall
…). It also include Queues to manage the maximum number of tasks to run concurrently.
Installation
Using NPM:
$ npm install promizr
Usage
You could use promizr
in different context.
Global
<script type="text/javascript" src="node_modules/promizr/dist/promizr.min.js"></script>
ES Modules
import { each } from "promizr";
await each([...], async (item) => { ... });
CommonJS
const promizr = require("promizr");
await promizr.each([...], async (item) => { ... });
AMD
// require.config.js
requirejs.config({
paths: {
promizr: 'node_modules/promizr/dist/promizr.min'
}
});
// module.js
define(["promizr"], function(promizr) {
promizr.each([...], async (item) => { ... }).then(...);
});
Quick Examples
// contents will be an array containing the content of each file
const contents = await promizr.map(['file1.json','file2.json','file3.json'], async (src) => {
const res = await fetch(`https://host/${src}`);
return res.json();
});
// entities will be an array containing an array of ids of public entities
const entities = await promizr.filter(['entity1','entity2','entity3'], async (entityId) => {
const res = await fetch(`https://api/entities/${entityId}`);
const entity = await res.json();
return entity.isPublic;
});
// operations will run in parallel
const [result1, result2, result3] = await promizr.parallel([
async () => operation1Async(),
async () => operation2Async(),
async () => operation3Async(),
];
Documentation
You can find the package documentation here.
License
This project is under MIT License. See the LICENSE file for the full license text.