async-es

3.2.5 • Public • Published

Async Logo

Github Actions CI status NPM version Coverage Status Join the chat at https://gitter.im/caolan/async jsDelivr Hits

Async is a utility module which provides straight-forward, powerful functions for working with asynchronous JavaScript. Although originally designed for use with Node.js and installable via npm install --save async, it can also be used directly in the browser.

This version of the package is optimized for building with webpack. If you use Async in Node.js, install async instead.

For Documentation, visit https://caolan.github.io/async/

For Async v1.5.x documentation, go HERE

// for use with callbacks...
import { forEachOf } from "async-es";

const images = {cat: "/cat.png", dog: "/dog.png", duck: "/duck.png"};
const sizes = {};

forEachOf(images, (value, key, callback) => {
    const imageElem = new Image();
    imageElem.src = value;
    imageElem.addEventListener("load", () => {
        sizes[key] = {
            width: imageElem.naturalWidth,
            height: imageElem.naturalHeight,
        };
        callback();
    });
    imageElem.addEventListener("error", (e) => {
        callback(e);
    });
}, err => {
    if (err) console.error(err.message);
    // `sizes` is now a map of image sizes
    doSomethingWith(sizes);
});
import { mapLimit } from "async-es";

// ...or ES2017 async functions
mapLimit(urls, 5, async function(url) {
    const response = await fetch(url)
    return response.body
}, (err, results) => {
    if (err) throw err
    // results is now an array of the response bodies
    console.log(results)
})

Package Sidebar

Install

npm i async-es

Weekly Downloads

9,941

Version

3.2.5

License

MIT

Unpacked Size

312 kB

Total Files

133

Last publish

Collaborators

  • beaugunderson
  • caolan
  • aearly
  • megawac
  • hargasinski