co-priority-queue

1.0.3 • Public • Published

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.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.3
    466
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.3
    466
  • 1.0.2
    0
  • 1.0.1
    1
  • 1.0.0
    0

Package Sidebar

Install

npm i co-priority-queue

Weekly Downloads

467

Version

1.0.3

License

MIT

Last publish

Collaborators

  • mvila