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.

Dependencies (0)

    Dev Dependencies (1)

    Package Sidebar

    Install

    npm i co-priority-queue

    Weekly Downloads

    579

    Version

    1.0.3

    License

    MIT

    Last publish

    Collaborators

    • mvila