Socket
Book a DemoInstallSign in
Socket

channel-async

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

channel-async

JS channels implementation... for async fun

latest
npmnpm
Version
0.0.1
Version published
Maintainers
1
Created
Source

Channel

JS channels implementation... for async fun.

CircleCI Build Status

About

WIP

Installation

npm install --save channel-async

Usage

const Channel = require('channel-async')

function sender(channel, data) {
  const values = [...data]

  let value
  while (value = values.shift()) {
    Channel.send(channel, value)
  }

  Channel.close(channel)
}

async function receiver(channel) {
  const values = []
  await Channel.range(channel, values.push)
  return values
}

const channel = new Channel(1)
const data = [1, 2, 3, 4, 5]

sender(channel, data)
receiver(channel).then(data => console.log(data))

// => '[1, 2, 3, 4, 5]'

API

Channel([capacity])

  • capacity (number) - the size of the channels internal buffer size.

A call to the Channel constructor (new Channel) returns a Channel instance with the following methods and properties.

channel.close()

Closes the channel, further send actions will return promises that reject. This is a utility method equivalent to call channel.queue(null).

channel.queue([value])

  • value (mixed) - the value to pass into the channel (or null to close it).

channel.size

The size property returns the total number of send actions that are pending in the internal buffer of the channel.

channel.capacity

Returns the capacity of the channel that was set at instantiation.

channel.open

Returns a boolean indicating whether or not the channel is open - ie. has not been closed using channel.close() or channel.queue(null).

Channel.send(channel, value)

  • channel (object) - a Channel instance.
  • value (mixed) - the value to pass into the channel (or null to close it).

Channel.close(channel)

  • channel (object) - a Channel instance.

Channel.receive(channel)

  • channel (object) - a Channel instance.

Channel.range(channel, fn)

  • channel (object) - a Channel instance.
  • fn - (function) - a callback function that is passed each value as is received from the channel. Channel.range will resolve when the channel is closed, or reject with an error is caught.

License

MIT © axdg (axdg@dfant.asia), 2107 •

FAQs

Package last updated on 06 Oct 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts