Normal Programming Mistake

    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.

    Keywords

    none

    Install

    npm i co-priority-queue

    DownloadsWeekly Downloads

    835

    Version

    1.0.3

    License

    MIT

    Last publish

    Collaborators

    • mvila