https://github.com/mvila/co-priority-queue
A simple priority queue for co
https://github.com/mvila/co-priority-queue
Last synced: 16 days ago
JSON representation
A simple priority queue for co
- Host: GitHub
- URL: https://github.com/mvila/co-priority-queue
- Owner: mvila
- Created: 2014-03-22T09:18:42.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-03-14T02:09:10.000Z (over 10 years ago)
- Last Synced: 2025-05-22T15:51:37.824Z (about 1 month ago)
- Language: JavaScript
- Size: 141 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# co-priority-queue [](https://travis-ci.org/mvila/co-priority-queue)
A simple priority queue for co.
## Installation
In your project folder, type:
npm install co-priority-queue
## Example
Queue with one consumer:
var co = require('co');
var Queue = require('co-priority-queue');co(function *(){
var queue = new Queue;
queue.push('a', 1);
queue.push('b', 2);
queue.push('c', 2);
console.log(yield queue.next());
console.log(yield queue.next());
console.log(yield queue.next());
})();The output is:
b
c
aQueue with multiple consumers:
var co = require('co');
var Queue = require('co-priority-queue');co(function *(){
queue.push('a', 1);
queue.push('b', 2);
queue.push('c', 2);
var consumers = [queue.next(), queue.next(), queue.next()];
console.log(yield consumers);
})();The output is:
['b', 'c', 'a']
## API
### Queue()
Create a new priority queue.
### Queue#push(data, priority)
Add `data` into the queue with the specified `priority`.
### Queue#next()
Return the data with the highest priority. If the queue is empty, waits until a new data is added.
## Credits
API and implementation heavily inspired from [co-queue](https://github.com/segmentio/co-queue) created by Julian Gruber. Thanks to him.
## License
co-priority-queue is distributed under the MIT license.