Init. Map does not function and only working on backend at the moment.
This commit is contained in:
115
node_modules/after/README.md
generated
vendored
Normal file
115
node_modules/after/README.md
generated
vendored
Normal file
@ -0,0 +1,115 @@
|
||||
# After [![Build Status][1]][2]
|
||||
|
||||
Invoke callback after n calls
|
||||
|
||||
## Status: production ready
|
||||
|
||||
## Example
|
||||
|
||||
```js
|
||||
var after = require("after")
|
||||
var db = require("./db") // some db.
|
||||
|
||||
var updateUser = function (req, res) {
|
||||
// use after to run two tasks in parallel,
|
||||
// namely get request body and get session
|
||||
// then run updateUser with the results
|
||||
var next = after(2, updateUser)
|
||||
var results = {}
|
||||
|
||||
getJSONBody(req, res, function (err, body) {
|
||||
if (err) return next(err)
|
||||
|
||||
results.body = body
|
||||
next(null, results)
|
||||
})
|
||||
|
||||
getSessionUser(req, res, function (err, user) {
|
||||
if (err) return next(err)
|
||||
|
||||
results.user = user
|
||||
next(null, results)
|
||||
})
|
||||
|
||||
// now do the thing!
|
||||
function updateUser(err, result) {
|
||||
if (err) {
|
||||
res.statusCode = 500
|
||||
return res.end("Unexpected Error")
|
||||
}
|
||||
|
||||
if (!result.user || result.user.role !== "admin") {
|
||||
res.statusCode = 403
|
||||
return res.end("Permission Denied")
|
||||
}
|
||||
|
||||
db.put("users:" + req.params.userId, result.body, function (err) {
|
||||
if (err) {
|
||||
res.statusCode = 500
|
||||
return res.end("Unexpected Error")
|
||||
}
|
||||
|
||||
res.statusCode = 200
|
||||
res.end("Ok")
|
||||
})
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Naive Example
|
||||
|
||||
```js
|
||||
var after = require("after")
|
||||
, next = after(3, logItWorks)
|
||||
|
||||
next()
|
||||
next()
|
||||
next() // it works
|
||||
|
||||
function logItWorks() {
|
||||
console.log("it works!")
|
||||
}
|
||||
```
|
||||
|
||||
## Example with error handling
|
||||
|
||||
```js
|
||||
var after = require("after")
|
||||
, next = after(3, logError)
|
||||
|
||||
next()
|
||||
next(new Error("oops")) // logs oops
|
||||
next() // does nothing
|
||||
|
||||
// This callback is only called once.
|
||||
// If there is an error the callback gets called immediately
|
||||
// this avoids the situation where errors get lost.
|
||||
function logError(err) {
|
||||
console.log(err)
|
||||
}
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
`npm install after`
|
||||
|
||||
## Tests
|
||||
|
||||
`npm test`
|
||||
|
||||
## Contributors
|
||||
|
||||
- Raynos
|
||||
- defunctzombie
|
||||
|
||||
## MIT Licenced
|
||||
|
||||
[1]: https://secure.travis-ci.org/Raynos/after.png
|
||||
[2]: http://travis-ci.org/Raynos/after
|
||||
[3]: http://raynos.org/blog/2/Flow-control-in-node.js
|
||||
[4]: http://stackoverflow.com/questions/6852059/determining-the-end-of-asynchronous-operations-javascript/6852307#6852307
|
||||
[5]: http://stackoverflow.com/questions/6869872/in-javascript-what-are-best-practices-for-executing-multiple-asynchronous-functi/6870031#6870031
|
||||
[6]: http://stackoverflow.com/questions/6864397/javascript-performance-long-running-tasks/6889419#6889419
|
||||
[7]: http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js/6620091#6620091
|
||||
[8]: http://github.com/Raynos/iterators
|
||||
[9]: http://github.com/Raynos/composite
|
Reference in New Issue
Block a user