promizr
v1.1.0
Published
ES6 Promise Extensions and utility methods + Polyfill which strictly follows ES6 specification
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 promizrUsage
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.
