Skip to content
This repository was archived by the owner on Jun 9, 2023. It is now read-only.
 
 

Repository files navigation

Async Logo

Build Status via Travis CI Build Status via Azure Pipelines NPM version Coverage Status Join the chat at https://gitter.im/caolan/async jsDelivr Hits

Async 是一个直截了当、强大的异步 JavaScript 实用工具模块。 尽管最初是设计用于 Node.js,可通过 npm i async 安装,但它也可以直接用于浏览器。 async 包里也包含了 ESM/MJS 版本,可以自动用于类似 Webpack、Rollup 的兼容打包工具。

此外还有一个纯 ESM 版本的 Async:async-es

中文文档正在翻译中,英文文档可访问 https://caolan.github.io/async/

Async v1.5.x 英文文档, 点击此处

// 使用 Node 回调风格……
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) return callback(err);
        try {
            configs[key] = JSON.parse(data);
        } catch (e) {
            return callback(e);
        }
        callback();
    });
}, err => {
    if (err) console.error(err.message);
    // configs 现在是 JSON 数据映射
    doSomethingWith(configs);
});
var async = require("async");

// ...或者 ES2017 async functions
async.mapLimit(urls, 5, async function(url) {
    const response = await fetch(url)
    return response.body
}, (err, results) => {
    if (err) throw err
    // 现在 results 是返回的 response.body 数组
    console.log(results)
})

About

Async 中文文档

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages