regrets-js
v0.1.3
Published
⏰ Asynchronous control structures in JS
Downloads
6
Readme
regrets.js
⏰ Asynchronous control structures in JS
| Platform | Build Status | | --- | --- | | Linux | | | Windows | |
What is regrets.js
regrets.js or Regrets allows asynchronous control structures in JS.
Regrets provides asynchronous:
- if-elseif-else
- while-do
- repeat-until
- boolean expressions (and, or, not)
- comparisons (eq, ne, gt, lt, ge, le)
- switch-case-default
- foreach
You can read more here at the documentation site.
Usage
Installation
NPM
npm i regrets-js
CDN
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/regrets-js/dist/index.min.js"></script>
Loading the module
CommonJS
const regrets = require('regrets-js');
Example
Delayed odd or even
Checks asynchronously if the number is an odd or an even number.
The result is resolved after 5 seconds.
const sleep = (x, y) => new Promise(z => setTimeout(z, y, x));
const checkParity = x => new regrets.if(sleep(x % 2 === 0, 5000))
.then(() => console.log('The number is even'))
.else(() => console.log('The number is odd'))
Sleepy Switch
const sleep = (x, y) => new Promise(z => setTimeout(z, y, x));
const sleepySwitch = x => new regrets.switch(sleep(x % 3, 2500))
.case(0).do(() => console.log('The number is a multiple of 3')).break()
.case(1).do(() => console.log('The number is 1 greater than a multiple of 3')).break()
.default(() => console.log('The number is 2 greater than a multiple of 3'))
sleepySwitch(14634)
sleepySwitch(1243)
sleepySwitch(5432)
Iterate items at an interval
const sleep = (x, y) => new Promise(z => setTimeout(z, y, x));
const interval = (x, y) => new regrets.forEach(x).do(v => sleep(v, y).then(console.log));
interval([1, 2, 3, 4, 5], 500);
Build
Clone the repo first then run in Terminal:
npm install
This installs the dependencies, then run:
npm run build
to build the CommonJS module, the browser module, the minified module, the docs, the coverages and the test suite.