Welis Garagen-Anzeige
This commit is contained in:
+58
@@ -0,0 +1,58 @@
|
||||
# Compiled source #
|
||||
###################
|
||||
*.com
|
||||
*.class
|
||||
*.dll
|
||||
*.exe
|
||||
*.o
|
||||
*.so
|
||||
|
||||
# Packages #
|
||||
############
|
||||
# it's better to unpack these files and commit the raw source
|
||||
# git has its own built in compression methods
|
||||
*.7z
|
||||
*.dmg
|
||||
*.gz
|
||||
*.iso
|
||||
*.jar
|
||||
*.rar
|
||||
*.tar
|
||||
*.zip
|
||||
|
||||
# Logs and databases #
|
||||
######################
|
||||
*.log
|
||||
*.sql
|
||||
*.sqlite
|
||||
|
||||
# OS generated files #
|
||||
######################
|
||||
.DS_Store*
|
||||
ehthumbs.db
|
||||
Icon?
|
||||
Thumbs.db
|
||||
|
||||
# Node.js #
|
||||
###########
|
||||
lib-cov
|
||||
*.seed
|
||||
*.log
|
||||
*.csv
|
||||
*.dat
|
||||
*.out
|
||||
*.pid
|
||||
*.gz
|
||||
|
||||
pids
|
||||
logs
|
||||
results
|
||||
|
||||
node_modules
|
||||
npm-debug.log
|
||||
|
||||
# Components #
|
||||
##############
|
||||
|
||||
/build
|
||||
/components
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "0.4"
|
||||
- "0.6"
|
||||
- "0.8"
|
||||
- "0.10"
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
# Array Series [](https://travis-ci.org/component/array-parallel)
|
||||
|
||||
Call an array of asynchronous functions in parallel
|
||||
|
||||
### API
|
||||
|
||||
#### parallel(fns[, context[, callback]])
|
||||
|
||||
```js
|
||||
var parallel = require('array-parallel')
|
||||
|
||||
parallel([
|
||||
function (done) {
|
||||
done()
|
||||
}
|
||||
], this, function (err) {
|
||||
|
||||
})
|
||||
```
|
||||
|
||||
#### fns
|
||||
|
||||
`fns` is an array of functions to call in parallel.
|
||||
The argument signature should be:
|
||||
|
||||
```js
|
||||
function (done) {
|
||||
done(new Error())
|
||||
// or
|
||||
done(null, result)
|
||||
}
|
||||
```
|
||||
|
||||
That is, each function should only take a `done` as an argument.
|
||||
Each callback should only take an `Error` as the first argument,
|
||||
or a value as the second.
|
||||
|
||||
#### context
|
||||
|
||||
Optional context to pass to each `fn`.
|
||||
Basically `fn.call(context, done)`.
|
||||
|
||||
#### callback(err, results)
|
||||
|
||||
```js
|
||||
function (err, results) {
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
Only argument is an `Error` argument.
|
||||
It will be the first error retrieved from all the `fns`.
|
||||
`results` will be an array of results from each `fn`,
|
||||
thus this could be considered an asynchronous version of `[].map`.
|
||||
|
||||
### License
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2013 Jonathan Ong me@jongleberry.com
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "array-parallel",
|
||||
"description": "Call an array of asynchronous functions in parallel",
|
||||
"repo": "array-parallel",
|
||||
"version": "0.1.3",
|
||||
"main": "index.js",
|
||||
"scripts": [
|
||||
"index.js"
|
||||
],
|
||||
"license": "MIT"
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
module.exports = function parallel(fns, context, callback) {
|
||||
if (!callback) {
|
||||
if (typeof context === 'function') {
|
||||
callback = context
|
||||
context = null
|
||||
} else {
|
||||
callback = noop
|
||||
}
|
||||
}
|
||||
|
||||
var pending = fns && fns.length
|
||||
if (!pending) return callback(null, []);
|
||||
|
||||
var finished = false
|
||||
var results = new Array(pending)
|
||||
|
||||
fns.forEach(context ? function (fn, i) {
|
||||
fn.call(context, maybeDone(i))
|
||||
} : function (fn, i) {
|
||||
fn(maybeDone(i))
|
||||
})
|
||||
|
||||
function maybeDone(i) {
|
||||
return function (err, result) {
|
||||
if (finished) return;
|
||||
|
||||
if (err) {
|
||||
callback(err, results)
|
||||
finished = true
|
||||
return
|
||||
}
|
||||
|
||||
results[i] = result
|
||||
|
||||
if (!--pending) callback(null, results);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function noop() {}
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
{
|
||||
"raw": "array-parallel@~0.1.3",
|
||||
"scope": null,
|
||||
"escapedName": "array-parallel",
|
||||
"name": "array-parallel",
|
||||
"rawSpec": "~0.1.3",
|
||||
"spec": ">=0.1.3 <0.2.0",
|
||||
"type": "range"
|
||||
},
|
||||
"/Users/gerrit/Documents/node.js-Projects/tinkerforge/node_modules/gm"
|
||||
]
|
||||
],
|
||||
"_from": "array-parallel@>=0.1.3 <0.2.0",
|
||||
"_id": "array-parallel@0.1.3",
|
||||
"_inCache": true,
|
||||
"_location": "/array-parallel",
|
||||
"_npmUser": {
|
||||
"name": "jongleberry",
|
||||
"email": "jonathanrichardong@gmail.com"
|
||||
},
|
||||
"_npmVersion": "1.3.17",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"raw": "array-parallel@~0.1.3",
|
||||
"scope": null,
|
||||
"escapedName": "array-parallel",
|
||||
"name": "array-parallel",
|
||||
"rawSpec": "~0.1.3",
|
||||
"spec": ">=0.1.3 <0.2.0",
|
||||
"type": "range"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/gm"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz",
|
||||
"_shasum": "8f785308926ed5aa478c47e64d1b334b6c0c947d",
|
||||
"_shrinkwrap": null,
|
||||
"_spec": "array-parallel@~0.1.3",
|
||||
"_where": "/Users/gerrit/Documents/node.js-Projects/tinkerforge/node_modules/gm",
|
||||
"author": {
|
||||
"name": "Jonathan Ong",
|
||||
"email": "me@jongleberry.com",
|
||||
"url": "http://jongleberry.com"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/component/array-parallel/issues",
|
||||
"email": "me@jongleberry.com"
|
||||
},
|
||||
"dependencies": {},
|
||||
"description": "Call an array of asynchronous functions in parallel",
|
||||
"devDependencies": {},
|
||||
"directories": {},
|
||||
"dist": {
|
||||
"shasum": "8f785308926ed5aa478c47e64d1b334b6c0c947d",
|
||||
"tarball": "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz"
|
||||
},
|
||||
"homepage": "https://github.com/component/array-parallel",
|
||||
"license": "MIT",
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "jongleberry",
|
||||
"email": "jonathanrichardong@gmail.com"
|
||||
}
|
||||
],
|
||||
"name": "array-parallel",
|
||||
"optionalDependencies": {},
|
||||
"readme": "ERROR: No README data found!",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/component/array-parallel.git"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "node test"
|
||||
},
|
||||
"version": "0.1.3"
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
var assert = require('assert')
|
||||
var parallel = require('./')
|
||||
|
||||
var a, b, c
|
||||
parallel([
|
||||
function (done) {
|
||||
setTimeout(function () {
|
||||
done(null, a = 0)
|
||||
}, 5)
|
||||
},
|
||||
function (done) {
|
||||
setTimeout(function () {
|
||||
done(null, b = 1)
|
||||
}, 10)
|
||||
},
|
||||
function (done) {
|
||||
setTimeout(function () {
|
||||
done(null, c = 2)
|
||||
}, 15)
|
||||
}
|
||||
], function (err, results) {
|
||||
assert.equal(a, 0)
|
||||
assert.equal(b, 1)
|
||||
assert.equal(c, 2)
|
||||
|
||||
assert.deepEqual(results, [0, 1, 2])
|
||||
})
|
||||
|
||||
var d, e
|
||||
parallel([
|
||||
function (done) {
|
||||
setTimeout(function () {
|
||||
d = 1
|
||||
done(new Error('message'))
|
||||
}, 5)
|
||||
},
|
||||
function (done) {
|
||||
setTimeout(function () {
|
||||
e = 2
|
||||
done()
|
||||
}, 10)
|
||||
}
|
||||
], function (err) {
|
||||
assert.equal(err.message, 'message')
|
||||
assert.equal(d, 1)
|
||||
assert.equal(e, undefined)
|
||||
})
|
||||
|
||||
var context = 'hello'
|
||||
parallel([function (done) {
|
||||
assert.equal(this, context)
|
||||
}], context)
|
||||
|
||||
var f
|
||||
parallel([function (done) {
|
||||
f = true
|
||||
done()
|
||||
}])
|
||||
|
||||
process.nextTick(function () {
|
||||
assert.equal(f, true)
|
||||
})
|
||||
Reference in New Issue
Block a user