gocsp-select

0.0.1 • Public • Published

gocsp-select

select from multiple channels, thunks, promises, events, etc

Example

var co = require('gocsp-co')
var select = require('gocsp-select')
 
co(function* () {
    yield select(s => s
        .take(chan_0, function (val) {
            // default: identity
        })
        .put(chan_1, val, function (ok) {
            // default: identity
        })
        .wait(thunk_or_promise, function (err, data) {
            // default: forward
        })
        .once(event, type, function (a, b, c) {
            // default: identity
        })
        .timeout(1000, function () {
            // default: timeout error
        })
    )
})()

or in coffeescript

co = require 'gocsp-co'
select = require 'gocsp-select'
 
# probably need latest coffee (1.8.* or 1.9.* ?) for generator syntax 
do co ->
  yield select ->
    @take chan_0(obj) ->
      # default: identity 
      # do something 
    @put chan_1val(ok) ->
      # default: identity 
      # do something 
    @wait thunk_or_promise(err, data) ->
      # default: forward 
      # do something 
    @once eventtype(a, b, c) ->
      # default: identity 
      # do something 
    @timeout 1000->
      # default: timeout error 
      # do something 

Readme

Keywords

none

Package Sidebar

Install

npm i gocsp-select

Weekly Downloads

1

Version

0.0.1

License

MIT

Last publish

Collaborators

  • gyson