Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/connoratherton/aqueue
A tiny queue for async tasks.
https://github.com/connoratherton/aqueue
Last synced: about 1 month ago
JSON representation
A tiny queue for async tasks.
- Host: GitHub
- URL: https://github.com/connoratherton/aqueue
- Owner: ConnorAtherton
- Created: 2015-01-03T06:28:03.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2015-09-07T17:53:53.000Z (about 9 years ago)
- Last Synced: 2024-09-07T22:52:43.618Z (2 months ago)
- Language: JavaScript
- Size: 164 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Aqueue ![Build Status](https://api.travis-ci.org/ConnorAtherton/aqueue.svg)
A lightweight queue for handling async operations.
## How to use
If you have ever used or seen express.js code this
will be very familiar to you.First, we need to create a queue to add our
functions too.```
var queue = aqueue(errHandler);
```The errHandler will be called if an error propogates in
any functions contained in the queue. Write your functions as you
normally would in the continuation passing style where errors - or lack thereof -
are always the first argument.Let's create two test functions.
```
var a = function(a, next) {
assert.equal(a, 'test');
assert.equal(typeof next, 'function');setTimeout(function() {
next(null, 'happy');
}, 100);
}var b = function(b, next) {
console.log('in b..');
assert.equal(b, 'happy');setTimeout(function() {
next(null);
}, 500);
}// Actually queue the functions using chaining
queue(a, 'test')(b);
// is the same as..
queue(a, 'test');
queue(b);
```The first thing to notice is that both of these functions
contain asynchronous calls, so to deal with this we invoke
the `next` function whenever the function has finished executing.
The next function is the function queued directly after the current
function.Underneath, aqueue handles argument passing and invoking
functions correctly. The error handler we passed in earlier
is called when the first argument is truthy. Queue execution
is halted and control is passed to that function instead.### Licence
MIT