1.0.0 • Published 6 years ago
pause-fn v1.0.0
pause-fn
A Node.js module to pause/resume execution of a function
const {pause, resume} = require('pause-fn');
const pausedConsoleLog = pause(console.log);
pausedConsoleLog(1); //=> prints nothing
pausedConsoleLog(2, 3); //=> prints nothing
resume(pausedConsoleLog); //=> prints '1\n' and '2 3\n'
Installation
npm install pause-fn
API
const pauseFn = require('pause-fn');
pauseFn(func)
func: Function
Return: Function
It returns a Function
that does nothing and always returns undefined
.
let num = 0;
const countUp = () => ++num;
countUp(); //=> 1
num; //=> 1
const pausedCountUp = pauseFn(countUp);
pausedCountUp(); //=> undefined, not 2
num; //=> 1, not 2
pausedCountUp(); //=> undefined
pausedCountUp(); //=> undefined
pausedCountUp(); //=> undefined
// ...
num; //=> 1
pauseFn.pause(func)
An alias of pauseFn()
.
pauseFn.resume(func)
func: Function
returned by pauseFn()
Return: any[]
It restores the original functionality of the paused Function
, calls it with the every arguments passed while paused, and returns the return values of each calls as an Array
.
const pausedMathMax = pauseFn(Math.max);
pausedMathMax(0); //=> undefined, not 0
pausedMathMax(Infinity, 1); //=> undefined, not Infinity
// The original function works as usual
Math.max(2, 3); //=> 3
pauseFn.resume(pausedMathMax); //=> [0, Infinity]
// Unlike the variable name, it's no longer paused
pausedMathMax(2, 3); //=> 3
License
ISC License © 2019 Shinnosuke Watanabe