JSFiddle - React, Tailwind, and code Playground
by JuanMa Garrido
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/co/4.1.0/index.js"></script>
JavaScript
function getAsyncRandomNumber( secondsDelay, cb ) {
setTimeout( () => {
const random = Math.floor( Math.random()*10 )
cb(random)
}, secondsDelay*1000)
}
function getRandomNumber( secondsDelay ) {
return new Promise( resolve => getAsyncRandomNumber(secondsDelay, resolve) )
}
const INITIAL_DELAY = 3
co( function *() {
var randomNumber1 = yield getRandomNumber(INITIAL_DELAY)
console.log(`After ${INITIAL_DELAY}s we got number ${randomNumber1}`)
var randomNumber2 = yield getRandomNumber(randomNumber1)
console.log(`After ${randomNumber1}s we got number ${randomNumber2}`)
var randomNumber3 = yield getRandomNumber(randomNumber2)
console.log(`[LAST] After ${randomNumber2}s we got number ${randomNumber3}`)
})