co-priority-queue

A simple priority queue for co

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
co-priority-queue
201.0.37 years ago8 years agoMinified + gzip package size for co-priority-queue in KB

Readme

co-priority-queue Build Status
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
a
Queue 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 created by Julian Gruber. Thanks to him.

License

co-priority-queue is distributed under the MIT license.