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 the Node.js environment. If you use Async with webpack, install async-es instead.
// for use with Node-style callbacks...var async =require("async");var obj = {dev:"/dev.json", test:"/test.json", prod:"/prod.json"};var configs = {};async.forEachOf(obj, (value, key, callback) => {fs.readFile(__dirname + value,"utf8", (err, data) => {if (err) returncallback(err);try { configs[key] =JSON.parse(data); } catch (e) {returncallback(e); }callback(); });}, err => {if (err) console.error(err.message);// configs is now a map of JSON datadoSomethingWith(configs);});
var async =require("async");// ...or ES2017 async functionsasync.mapLimit(urls,5,asyncfunction(url) {constresponse=awaitfetch(url)returnresponse.body}, (err, results) => {if (err) throw err// results is now an array of the response bodiesconsole.log(results)})