pause-fn
Version:
Pause/resume execution of a function
88 lines (57 loc) • 2.1 kB
Markdown
//img.shields.io/npm/v/pause-fn.svg)](https://www.npmjs.com/package/pause-fn)
[](https://travis-ci.com/shinnn/pause-fn)
[](https://codecov.io/gh/shinnn/pause-fn)
A [Node.js](https://nodejs.org/) module to pause/resume execution of a function
```javascript
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'
```
[ ](https://docs.npmjs.com/cli/install) [npm](https://docs.npmjs.com/about-npm/).
```
npm install pause-fn
```
```javascript
const pauseFn = require('pause-fn');
```
*func*: `Function`
Return: `Function`
It returns a `Function` that does nothing and always returns `undefined`.
```javascript
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
```
An alias of [`pauseFn()`](
*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`.
```javascript
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) © 2019 Shinnosuke Watanabe
[![npm version](https: