1.0.0 • Published 5 years ago
rspair v1.0.0
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