Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save davidystephenson/1f3e9c5ada8ca39c3666342e09276f09 to your computer and use it in GitHub Desktop.
Save davidystephenson/1f3e9c5ada8ca39c3666342e09276f09 to your computer and use it in GitHub Desktop.
<script>
// First log 'start'
// Then log "starting alpha"
// Then, sleep for 2 seconds
// Then, log 'alpha'
// Then, log "starting beta"
// Then, 4 seconds later, log beta
// Then, log "starting gamma"
// Then, 1 second later log gamma
// Then, log "starting delta"
// Then, 3 seconds later log delta
console.log('start')
function sleep (milliseconds) {
return new Promise((resolve) => {
setTimeout(() => {
resolve()
}, milliseconds)
})
}
async function main () {
console.log('starting alpha')
await sleep(2000) // blocking
console.log('alpha')
console.log('starting beta')
await sleep(4000)
console.log('beta')
console.log('starting gamma')
await sleep(1000)
console.log('gamma')
console.log('starting delta')
await sleep(3000)
console.log('delta')
}
main() // asynchronous / non-blocking
console.log('after')
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment