0.0.0 • Published 8 years ago

cspromise v0.0.0

Weekly downloads
3
License
MIT
Repository
-
Last release
8 years ago

CSPromise Build Status Coverage Status

CSPromise implements CSP constructs (found in e.g. Go, Clojure, etc.) on top of JavaScript (Node.js or browser) Promises.

Features

  • Easy. Designed (but not required!) to be used with Promise-based coroutines (e.g. async/await, Bluebird, co).
  • Standard. Drop-in alongside existing Promises (native or polyfilled).
  • Fast. As performant as a Promise.

API

var csp = require('cspromise')

Returns the module.

new csp.Channel(size=0)

Instantiates a new CSP channel with an optional fixed size.

Chan.prototype.put(val, block=true)

Put an item in the channel, optionally blocking until space is available, and then, resolve. If block == false and no space is available, reject.

Chan.prototype.take(block=true)

Take an item from the channel, optionally blocking until a value is sent, and then, resolve. If block == false and no space is available, reject.

Chan.prototype.close()

Close channel. Receiving or sending on this channel will reject.

FAQ

Why CSP?

CSP makes it easy to communicate between Promise coroutines and moreover, "control flows". Read more on why CSP matters.

Why not use js-csp?

js-csp and CSPromise align conceptually, but js-csp invents its own asynchronous control flow, leaving a community of Promise-based code behind.