1.0.0 • Published 5 years ago

rspair v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago

rspair

  • rspair is very simple util, it will creat a pair of sender and recver
  • recver collect the msg from sender, until done
  • error will continue

install

  • npm install rspair

usage

  • const new_pair = require('rspair')
  • var pair = new_pair("pair-name")

examples

    const rspair = require('rspair')
    var pair = rspair("<->")

    pair.recver
    //Recver { cursor: { i: 0 }, rslts: [], exceptions: [], dones: [] }


    pair.sender.next(123)
    pair.sender.next(456)

    pair.recver
    /*
    Recver {
      cursor: { i: 2 },
      rslts: [ { i: 0, r: 123 }, { i: 1, r: 456 } ],
      exceptions: [],
      dones: []
    }
    >
    */

    pair.sender.error(new Error("error1"))
    pair.sender.error(new Error("error2"))

    /*
    > pair.recver
    Recver {
      cursor: { i: 4 },
      rslts: [ { i: 0, r: 123 }, { i: 1, r: 456 } ],
      exceptions: [
        {
          i: 2,
          r: Error: error1
              at repl:1:19
              at Script.runInThisContext (vm.js:120:20)
              at REPLServer.defaultEval (repl.js:431:29)
              at bound (domain.js:426:14)
              at REPLServer.runBound [as eval] (domain.js:439:12)
              at REPLServer.onLine (repl.js:759:10)
              at REPLServer.emit (events.js:322:22)
              at REPLServer.EventEmitter.emit (domain.js:482:12)
              at REPLServer.Interface._onLine (readline.js:322:10)
              at REPLServer.Interface._line (readline.js:699:8)
        },
        {
          i: 3,
          r: Error: error2
              at repl:1:19
              at Script.runInThisContext (vm.js:120:20)
              at REPLServer.defaultEval (repl.js:431:29)
              at bound (domain.js:426:14)
              at REPLServer.runBound [as eval] (domain.js:439:12)
              at REPLServer.onLine (repl.js:759:10)
              at REPLServer.emit (events.js:322:22)
              at REPLServer.EventEmitter.emit (domain.js:482:12)
              at REPLServer.Interface._onLine (readline.js:322:10)
              at REPLServer.Interface._line (readline.js:699:8)
        }
      ],
      dones: []
    }
    >
    */

    pair.sender.next(789)
    pair.sender.complete('task done!')
    pair.done
    //true
    pair.recver
    /*
    >
    Recver {
      cursor: { i: 6 },
      rslts: [ { i: 0, r: 123 }, { i: 1, r: 456 }, { i: 4, r: 789 } ],
      exceptions: [
        {
          i: 2,
          r: Error: error1
              at repl:1:19
              at Script.runInThisContext (vm.js:120:20)
              at REPLServer.defaultEval (repl.js:431:29)
              at bound (domain.js:426:14)
              at REPLServer.runBound [as eval] (domain.js:439:12)
              at REPLServer.onLine (repl.js:759:10)
              at REPLServer.emit (events.js:322:22)
              at REPLServer.EventEmitter.emit (domain.js:482:12)
              at REPLServer.Interface._onLine (readline.js:322:10)
              at REPLServer.Interface._line (readline.js:699:8)
        },
        {
          i: 3,
          r: Error: error2
              at repl:1:19
              at Script.runInThisContext (vm.js:120:20)
              at REPLServer.defaultEval (repl.js:431:29)
              at bound (domain.js:426:14)
              at REPLServer.runBound [as eval] (domain.js:439:12)
              at REPLServer.onLine (repl.js:759:10)
              at REPLServer.emit (events.js:322:22)
              at REPLServer.EventEmitter.emit (domain.js:482:12)
              at REPLServer.Interface._onLine (readline.js:322:10)
              at REPLServer.Interface._line (readline.js:699:8)
        }
      ],
      dones: [ { i: 5, r: undefined } ]
    }
    >

    */

    pair.reset()
    >
    > pair.recver
    Recver { cursor: { i: 0 }, rslts: [], exceptions: [], dones: [] }
    > pair.done
    false
    >

API

  • pair.reset()
  • pair.done
  • pair.sender
  • pair.sender.next(r)
  • pair.sender.error(err)
  • pair.sender.complete()
  • pair.sender.pair
  • pair.sender.recver
  • pair.recver
  • pair.recver.rslts
  • pair.recver.exceptions
  • pair.recver.cursor
  • pair.recver.pair
  • pair.recver.sender

LICENSE

  • ISC
1.0.0

5 years ago