120 lines
55 KiB
JSON
120 lines
55 KiB
JSON
|
{
|
||
|
"_args": [
|
||
|
[
|
||
|
{
|
||
|
"raw": "async@^0.9.0",
|
||
|
"scope": null,
|
||
|
"escapedName": "async",
|
||
|
"name": "async",
|
||
|
"rawSpec": "^0.9.0",
|
||
|
"spec": ">=0.9.0 <0.10.0",
|
||
|
"type": "range"
|
||
|
},
|
||
|
"/home/jdaugherty/work/GT2/GT2-Android/node_modules/@expo/ngrok"
|
||
|
]
|
||
|
],
|
||
|
"_from": "async@>=0.9.0 <0.10.0",
|
||
|
"_id": "async@0.9.2",
|
||
|
"_inCache": true,
|
||
|
"_location": "/async",
|
||
|
"_nodeVersion": "2.0.1",
|
||
|
"_npmUser": {
|
||
|
"name": "beaugunderson",
|
||
|
"email": "beau@beaugunderson.com"
|
||
|
},
|
||
|
"_npmVersion": "2.9.0",
|
||
|
"_phantomChildren": {},
|
||
|
"_requested": {
|
||
|
"raw": "async@^0.9.0",
|
||
|
"scope": null,
|
||
|
"escapedName": "async",
|
||
|
"name": "async",
|
||
|
"rawSpec": "^0.9.0",
|
||
|
"spec": ">=0.9.0 <0.10.0",
|
||
|
"type": "range"
|
||
|
},
|
||
|
"_requiredBy": [
|
||
|
"/@expo/ngrok"
|
||
|
],
|
||
|
"_resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
|
||
|
"_shasum": "aea74d5e61c1f899613bf64bda66d4c78f2fd17d",
|
||
|
"_shrinkwrap": null,
|
||
|
"_spec": "async@^0.9.0",
|
||
|
"_where": "/home/jdaugherty/work/GT2/GT2-Android/node_modules/@expo/ngrok",
|
||
|
"author": {
|
||
|
"name": "Caolan McMahon"
|
||
|
},
|
||
|
"bugs": {
|
||
|
"url": "https://github.com/caolan/async/issues"
|
||
|
},
|
||
|
"dependencies": {},
|
||
|
"description": "Higher-order functions and common patterns for asynchronous code",
|
||
|
"devDependencies": {
|
||
|
"lodash": ">=2.4.1",
|
||
|
"nodelint": ">0.0.0",
|
||
|
"nodeunit": ">0.0.0",
|
||
|
"uglify-js": "1.2.x"
|
||
|
},
|
||
|
"directories": {},
|
||
|
"dist": {
|
||
|
"shasum": "aea74d5e61c1f899613bf64bda66d4c78f2fd17d",
|
||
|
"tarball": "https://registry.npmjs.org/async/-/async-0.9.2.tgz"
|
||
|
},
|
||
|
"gitHead": "de3a16091d5125384eff4a54deb3998b13c3814c",
|
||
|
"homepage": "https://github.com/caolan/async#readme",
|
||
|
"jam": {
|
||
|
"main": "lib/async.js",
|
||
|
"include": [
|
||
|
"lib/async.js",
|
||
|
"README.md",
|
||
|
"LICENSE"
|
||
|
],
|
||
|
"categories": [
|
||
|
"Utilities"
|
||
|
]
|
||
|
},
|
||
|
"keywords": [
|
||
|
"async",
|
||
|
"callback",
|
||
|
"utility",
|
||
|
"module"
|
||
|
],
|
||
|
"license": "MIT",
|
||
|
"main": "lib/async.js",
|
||
|
"maintainers": [
|
||
|
{
|
||
|
"name": "caolan",
|
||
|
"email": "caolan.mcmahon@gmail.com"
|
||
|
},
|
||
|
{
|
||
|
"name": "beaugunderson",
|
||
|
"email": "beau@beaugunderson.com"
|
||
|
}
|
||
|
],
|
||
|
"name": "async",
|
||
|
"optionalDependencies": {},
|
||
|
"readme": "# Async.js\n\n[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async)\n\n\nAsync is a utility module which provides straight-forward, powerful functions\nfor working with asynchronous JavaScript. Although originally designed for\nuse with [Node.js](http://nodejs.org) and installable via `npm install async`,\nit can also be used directly in the browser.\n\nAsync is also installable via:\n\n- [bower](http://bower.io/): `bower install async`\n- [component](https://github.com/component/component): `component install\n caolan/async`\n- [jam](http://jamjs.org/): `jam install async`\n- [spm](http://spmjs.io/): `spm install async`\n\nAsync provides around 20 functions that include the usual 'functional'\nsuspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns\nfor asynchronous control flow (`parallel`, `series`, `waterfall`…). All these\nfunctions assume you follow the Node.js convention of providing a single\ncallback as the last argument of your `async` function.\n\n\n## Quick Examples\n\n```javascript\nasync.map(['file1','file2','file3'], fs.stat, function(err, results){\n // results is now an array of stats for each file\n});\n\nasync.filter(['file1','file2','file3'], fs.exists, function(results){\n // results now equals an array of the existing files\n});\n\nasync.parallel([\n function(){ ... },\n function(){ ... }\n], callback);\n\nasync.series([\n function(){ ... },\n function(){ ... }\n]);\n```\n\nThere are many more functions available so take a look at the docs below for a\nfull list. This module aims to be comprehensive, so if you feel anything is\nmissing please create a GitHub issue for it.\n\n## Common Pitfalls\n\n### Binding a context to an iterator\n\nThis section is really about `bind`, not about `async`. If you are wondering how to\nmake `async` execute your iterators in a given context, or are confused as to why\na method of another library isn't working as an iterator, study this example:\n\n```js\n// Here is a simple object with an (unnecessarily roundabout) squaring method\nvar AsyncSquaringLibrary = {\n squareExponent: 2,\n square: function(number, callback){ \n var result = Math.pow(number, this.squareExponent);\n setTimeout(function(){\n callback(null, result);\n }, 200);\n }\n};\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){\n // result is [NaN, NaN, NaN]\n // This fails because the `this.squareExponent` expression in the square\n // function is not evaluated in the context of AsyncSquaringLibrary, and is\n // therefore undefined.\n});\n\nasync.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){\n // result is [1, 4, 9]\n // With the help of bind we can attach a context to the iterator before\n // passing it to async. Now the square function will be executed in its \n // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent`\n // will be as expected.\n});\n```\n\n## Download\n\nThe source is available for download from\n[GitHub](http://github.com/caolan/async).\nAlternatively, you can install using Node Package Manager (`npm`):\n\n npm install async\n\n__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed\n\n## In the Browser\n\nSo far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. \n\nUsage:\n\n```html\n<script type=\"text/javascript\" src=\"async.js\"></script>\n<script type=\"text/javascript\">\n\n async.map(data, asyncProcess, function(err, results){\n alert(results);\n });\n\n</script>\n```\n\n## Documentation\n\n### Collections\n\n* [`each`](#each)\n* [`eachSeries`](#eachSeries)\n* [`eachLimit`](#eachLimit)\n* [`map`](#map)\n* [`mapSeries`](#mapSeries)\n* [`mapLimit`](#mapLimit)\n* [`filter`](#filter)\n* [`filterSeries`](#filterSeries)\n* [`reject`](#reject)\n* [`rejectSeries`](#rejectSeries)\n* [`reduce`](#reduce)\n* [`reduceRight`](#reduceRight)\n* [`detect`](#detect)\n* [`detectSer
|
||
|
"readmeFilename": "README.md",
|
||
|
"repository": {
|
||
|
"type": "git",
|
||
|
"url": "git+https://github.com/caolan/async.git"
|
||
|
},
|
||
|
"scripts": {
|
||
|
"test": "nodeunit test/test-async.js"
|
||
|
},
|
||
|
"spm": {
|
||
|
"main": "lib/async.js"
|
||
|
},
|
||
|
"version": "0.9.2",
|
||
|
"volo": {
|
||
|
"main": "lib/async.js",
|
||
|
"ignore": [
|
||
|
"**/.*",
|
||
|
"node_modules",
|
||
|
"bower_components",
|
||
|
"test",
|
||
|
"tests"
|
||
|
]
|
||
|
}
|
||
|
}
|