Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mvila/co-priority-queue
A simple priority queue for co
https://github.com/mvila/co-priority-queue
Last synced: about 1 month 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 10 years ago)
- Default Branch: master
- Last Pushed: 2015-03-14T02:09:10.000Z (over 9 years ago)
- Last Synced: 2024-09-17T03:36:08.573Z (2 months 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 [![Build Status](https://travis-ci.org/mvila/co-priority-queue.svg?branch=master)](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.