Nonviolent Pigeon Manifestation

    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 

    Keywords

    none

    Install

    npm i gocsp-select

    DownloadsWeekly Downloads

    1

    Version

    0.0.1

    License

    MIT

    Last publish

    Collaborators

    • gyson