nv-facutil-simple-microq
v1.0.2
Published
nv-facutil-simple-microq =============== - wrap of queueMicrotask AND process.nextTick AND Promise.prototype.finally,apply - phigh high priority micro task - plow low priority micro task - pbest\_effort lower priority
Downloads
1
Readme
nv-facutil-simple-microq
- wrap of queueMicrotask AND process.nextTick AND Promise.prototype.finally,apply
- phigh high priority micro task
- plow low priority micro task
- pbest_effort lower priority micro task , only work in nodejs
install
- npm install nv-facutil-simple-microq
usage
const {phigh,plow,pbest_effort} = require("nv-facutil-simple-microq")
in each high/low level :
first high priority
then low priority
---> then next high/low level
when all high/low task finished:
in each best_effort level :
best_effort
---> then next best_effort level
final:
---> goto next-loop-macro-task, such as setTimeout(0)
example
function tst() {
setTimeout(()=>{console.log('setTimeout-0')},0)
////
pbest_effort(() => console.log("best_effort queue level 1:",111),1); //----pbest_effort only work on nodejs
pbest_effort(() => console.log("best_effort queue level 1:",222),1); //----pbest_effort only work on nodejs
pbest_effort(() => console.log("best_effort queue :",100)); //----pbest_effort only work on nodejs
pbest_effort(() => console.log("best_effort queue :",200)); //----pbest_effort only work on nodejs
////
plow(() => console.log("low queue level 0 :",'X'))
plow(() => console.log("low queue level 0 :",'Y'))
////
plow(() => console.log("low queue level 1 :",'lowA:1'),1)
plow(() => console.log("low queue level 1 :",'lowB:1'),1)
phigh(()=>console.log("high queue level 1 :",'M'),1)
phigh(()=>console.log("high queue level 1 :",'N'),1)
////
phigh(() => {console.log("high queue level 0 :",'c')});
phigh(() => {console.log("high queue level 0 :",'d')});
/////
console.log('\nbegin!')
}
begin!
> high queue level 0 : c
high queue level 0 : d
low queue level 0 : X
low queue level 0 : Y
high queue level 1 : M
high queue level 1 : N
low queue level 1 : lowA:1
low queue level 1 : lowB:1
best_effort queue : 100
best_effort queue : 200
best_effort queue level 1: 111
best_effort queue level 1: 222
setTimeout-0
APIS
phigh(f,level=0)
plow(f,level=0)
pbest_effort(f,best_effort_level=0) //only work in nodejs
ph(f) //same as phigh(f,0)
pl(f) //same as plow(f,0)
pbe(f) //same as pbest_effort(f,0), only work in nodejs
LICENSE
- ISC