0.0.1 • Published 8 years ago
channel-async v0.0.1
Channel
JS channels implementation... for async fun.
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 (ornullto 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) - aChannelinstance. - value (
mixed) - the value to pass into the channel (ornullto close it).
Channel.close(channel)
- channel (
object) - aChannelinstance.
Channel.receive(channel)
- channel (
object) - aChannelinstance.
Channel.range(channel, fn)
- channel (
object) - aChannelinstance. - fn - (
function) - a callback function that is passed each value as is received from the channel.Channel.rangewill resolve when thechannelis closed, or reject with an error is caught.
License
• MIT © axdg (axdg@dfant.asia), 2107 •
0.0.1
8 years ago