Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save davidystephenson/4ad477ea9d99b9e3c9e3dfdda70b549d to your computer and use it in GitHub Desktop.
Save davidystephenson/4ad477ea9d99b9e3c9e3dfdda70b549d to your computer and use it in GitHub Desktop.
<script>
// synchronous (wait)
console.log('before')
function sleep(ms) {
return new Promise((resolve) => {
setTimeout(() => {
resolve()
}, ms)
})
}
async function timers() {
await sleep(2000)
console.log('alpha: 2 seconds')
await sleep(3000)
console.log('beta: 3 seconds')
await sleep(1000)
console.log('gamma: 1 second')
await sleep(4000)
console.log('delta: 4 seconds')
return 'test'
}
async function main() {
console.log('first')
const message = await timers()
console.log('second', message)
}
main()
// const alphaPromise = sleep(2000)
// alphaPromise
// .then(() => {
// console.log('alpha: 2 seconds')
// const betaPromise = sleep(3000)
// return betaPromise
// })
// .then(() => {
// console.log('beta: 3 seconds')
// const gammaPromise = sleep(1000)
// return gammaPromise
// })
// .then(() => {
// console.log('gamma: 1 second')
// return sleep(4000)
// })
// .then(() => {
// console.log('delta: 4 seconds')
// })
// asynchronous (don't wait)
// setTimeout(() => {
// console.log('alpha: 2 seconds')
// setTimeout(() => {
// console.log('beta: 3 seconds')
// setTimeout(() => {
// console.log('gamma: 1 second')
// setTimeout(() => {
// console.log('delta: 4 seconds')
// }, 4000)
// }, 1000)
// }, 3000)
// }, 2000)
console.log('after')
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment