⏰ Asynchronous control structures in JS
Platform | Build Status |
---|---|
Linux | |
Windows |
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.
NPM
npm i regrets-js
CDN
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/regrets-js/dist/index.min.js"></script>
CommonJS
const regrets = require('regrets-js');
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'))
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)
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);
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.