JSPM

co-priority-queue

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 573
  • Score
    100M100P100Q109028F
  • License MIT

A simple priority queue for co

Package Exports

  • co-priority-queue

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (co-priority-queue) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

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.