nv-facutil-time-sequence
v0.0.2
Published
nv-facutil-time-sequence ====================== - nv-facutil-time-sequence - early,tmout,between promises - for time-sensitive actions
Downloads
1
Readme
nv-facutil-time-sequence
- nv-facutil-time-sequence
- early,tmout,between promises
- for time-sensitive actions
install
- npm install nv-facutil-time-sequence
usage
const {
noexist,
TMOUT,TOO_EARLY,
before,after,between,
sequence
} = require("nv-facutil-time-sequence")
example
function start(name) {
console.log(`action ${name} started at:${new Date()}`)
}
function end(name) {
return(`action ${name} eneded at:${new Date()}`)
}
var actions = [
after(0),
function (resolve) {
start(0);
resolve(end(0));
}, //must happended after 1000 ms
between(3000,4000),
function (resolve) {
start(1);
setTimeout(
()=> {
resolve(end(1))
},
4500 //====>4500 not-in-range- (3000,4000)
)
}, //must happended after 3000 ms AND before 4000 ms FROM lst action finished
before(2000),
function (resolve) {
start(2);
resolve(end(2))
}, //must happended after 2000 ms FROM lst action finished
]
> await sequence(actions)
action 0 started at:Sat Dec 04 2021 06:09:57 GMT+0000 (Coordinated Universal Time)
action 1 started at:Sat Dec 04 2021 06:09:57 GMT+0000 (Coordinated Universal Time)
action 2 started at:Sat Dec 04 2021 06:10:01 GMT+0000 (Coordinated Universal Time)
[
'action 0 eneded at:Sat Dec 04 2021 06:09:57 GMT+0000 (Coordinated Universal Time)',
Symbol(tmout),
'action 2 eneded at:Sat Dec 04 2021 06:10:01 GMT+0000 (Coordinated Universal Time)'
]
>
var actions = [
after(0),
function (resolve) {
start(0);
resolve(end(0));
}, //must happended after 1000 ms
between(3000,4000),
function (resolve) {
start(1);
setTimeout(
()=> {
resolve(end(1))
},
3500 // =========>3500 in-range
)
}, //must happended after 3000 ms AND before 4000 ms FROM lst action finished
before(2000),
function (resolve) {
start(2);
resolve(end(2))
}, //must happended after 2000 ms FROM lst action finished
]
await sequence(actions)
> await sequence(actions)
action 0 started at:Sat Dec 04 2021 06:10:56 GMT+0000 (Coordinated Universal Time)
action 1 started at:Sat Dec 04 2021 06:10:56 GMT+0000 (Coordinated Universal Time)
action 2 started at:Sat Dec 04 2021 06:10:59 GMT+0000 (Coordinated Universal Time)
[
'action 0 eneded at:Sat Dec 04 2021 06:10:56 GMT+0000 (Coordinated Universal Time)',
'action 1 eneded at:Sat Dec 04 2021 06:10:59 GMT+0000 (Coordinated Universal Time)',
'action 2 eneded at:Sat Dec 04 2021 06:10:59 GMT+0000 (Coordinated Universal Time)'
]
>
METHODS
- .settled
ACTION FORMAT
Act: (resolve)=>{/*...*/}
Action: Act | before | after | between
Actions: Array<Action>
APIS
- noexist
- TMOUT
- TOO_EARLY
- before(ms) //timeout
- between(after_ms,before_ms)
- after(ms) //must happened after..
- sequence(actions)
LICENSE
- ISC