[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2888":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":22,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},2888,"async","caolan\u002Fasync","caolan","Async utilities for node and the browser","http:\u002F\u002Fcaolan.github.io\u002Fasync\u002F",null,"JavaScript",28154,2375,632,11,0,4,70.4,"MIT License",false,"master",true,[5,24,25],"callbacks","javascript","2026-06-12 04:00:16","![Async Logo](https:\u002F\u002Fraw.githubusercontent.com\u002Fcaolan\u002Fasync\u002Fmaster\u002Flogo\u002Fasync-logo_readme.jpg)\n\n![Github Actions CI status](https:\u002F\u002Fgithub.com\u002Fcaolan\u002Fasync\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)\n[![NPM version](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fasync.svg)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fasync)\n[![Coverage Status](https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fcaolan\u002Fasync\u002Fbadge.svg?branch=master)](https:\u002F\u002Fcoveralls.io\u002Fr\u002Fcaolan\u002Fasync?branch=master)\n[![Join the chat at https:\u002F\u002Fgitter.im\u002Fcaolan\u002Fasync](https:\u002F\u002Fbadges.gitter.im\u002FJoin%20Chat.svg)](https:\u002F\u002Fgitter.im\u002Fcaolan\u002Fasync?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n[![jsDelivr Hits](https:\u002F\u002Fdata.jsdelivr.com\u002Fv1\u002Fpackage\u002Fnpm\u002Fasync\u002Fbadge?style=rounded)](https:\u002F\u002Fwww.jsdelivr.com\u002Fpackage\u002Fnpm\u002Fasync)\n\n\u003C!--\n|Linux|Windows|MacOS|\n|-|-|-|\n|[![Linux Build Status](https:\u002F\u002Fdev.azure.com\u002Fcaolanmcmahon\u002Fasync\u002F_apis\u002Fbuild\u002Fstatus\u002Fcaolan.async?branchName=master&jobName=Linux&configuration=Linux%20node_10_x)](https:\u002F\u002Fdev.azure.com\u002Fcaolanmcmahon\u002Fasync\u002F_build\u002Flatest?definitionId=1&branchName=master) | [![Windows Build Status](https:\u002F\u002Fdev.azure.com\u002Fcaolanmcmahon\u002Fasync\u002F_apis\u002Fbuild\u002Fstatus\u002Fcaolan.async?branchName=master&jobName=Windows&configuration=Windows%20node_10_x)](https:\u002F\u002Fdev.azure.com\u002Fcaolanmcmahon\u002Fasync\u002F_build\u002Flatest?definitionId=1&branchName=master) | [![MacOS Build Status](https:\u002F\u002Fdev.azure.com\u002Fcaolanmcmahon\u002Fasync\u002F_apis\u002Fbuild\u002Fstatus\u002Fcaolan.async?branchName=master&jobName=OSX&configuration=OSX%20node_10_x)](https:\u002F\u002Fdev.azure.com\u002Fcaolanmcmahon\u002Fasync\u002F_build\u002Flatest?definitionId=1&branchName=master)| -->\n\nAsync is a utility module which provides straight-forward, powerful functions for working with [asynchronous JavaScript](http:\u002F\u002Fcaolan.github.io\u002Fasync\u002Fv3\u002Fglobal.html). Although originally designed for use with [Node.js](https:\u002F\u002Fnodejs.org\u002F) and installable via `npm i async`, it can also be used directly in the browser.  An ESM\u002FMJS version is included in the main `async` package that should automatically be used with compatible bundlers such as Webpack and Rollup.\n\nA pure ESM version of Async is available as [`async-es`](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fasync-es).\n\nFor Documentation, visit \u003Chttps:\u002F\u002Fcaolan.github.io\u002Fasync\u002F>\n\n*For Async v1.5.x documentation, go [HERE](https:\u002F\u002Fgithub.com\u002Fcaolan\u002Fasync\u002Fblob\u002Fv1.5.2\u002FREADME.md)*\n\n\n```javascript\n\u002F\u002F for use with Node-style callbacks...\nvar async = require(\"async\");\n\nvar obj = {dev: \"\u002Fdev.json\", test: \"\u002Ftest.json\", prod: \"\u002Fprod.json\"};\nvar configs = {};\n\nasync.forEachOf(obj, (value, key, callback) => {\n    fs.readFile(__dirname + value, \"utf8\", (err, data) => {\n        if (err) return callback(err);\n        try {\n            configs[key] = JSON.parse(data);\n        } catch (e) {\n            return callback(e);\n        }\n        callback();\n    });\n}, err => {\n    if (err) console.error(err.message);\n    \u002F\u002F configs is now a map of JSON data\n    doSomethingWith(configs);\n});\n```\n\n```javascript\nvar async = require(\"async\");\n\n\u002F\u002F ...or ES2017 async functions\nasync.mapLimit(urls, 5, async function(url) {\n    const response = await fetch(url)\n    return response.body\n}, (err, results) => {\n    if (err) throw err\n    \u002F\u002F results is now an array of the response bodies\n    console.log(results)\n})\n```\n","Async 是一个用于处理异步 JavaScript 的实用工具库，提供了简洁且强大的函数来简化回调地狱。它支持 Node.js 和浏览器环境，通过 npm 安装即可使用，并且兼容 Webpack 和 Rollup 等现代打包工具。其核心功能包括一系列控制流函数如 `forEachOf`、`mapLimit` 等，能够帮助开发者更高效地管理复杂的异步操作。适用于需要处理大量并发任务或需要对异步流程进行精细控制的应用场景，比如数据处理、网络请求等。",2,"2026-06-11 02:51:29","top_language"]