-
-
Save stivenson/d5ee3660ea0aef8af06658cb767c74c5 to your computer and use it in GitHub Desktop.
ES7's async/await syntax.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ES7, async/await | |
function sleep(ms = 0) { | |
return new Promise(r => setTimeout(r, ms)); | |
} | |
(async () => { | |
console.log('a'); | |
await sleep(1000); | |
console.log('b'); | |
})() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ES6, native Promises, arrow functions, default arguments | |
function sleep(ms = 0) { | |
return new Promise(r => setTimeout(r, ms)); | |
} | |
console.log('a'); | |
sleep(1000).then(() => { | |
console.log('b'); | |
}); | |
// or if we were to be strictly identical, an "async" function returns a | |
// Promise, so this is more accurate, but the fluff isn't needed for in this case | |
(function() { | |
return new Promise((resolve, reject) => { | |
sleep(1000).then(() => { | |
console.log('b'); | |
resolve(); | |
}); | |
}); | |
})(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ES6, native Promises ONLY | |
function sleep(ms) { | |
ms = ms || 0; | |
return new Promise(function(resolve) { | |
setTimeout(resolve, ms); | |
}); | |
} | |
(function() { | |
console.log('a'); | |
sleep(1000).then(function() { | |
console.log('b'); | |
}); | |
})(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ES5, nothing special | |
function sleep(ms, callback) { | |
ms = ms || 0; | |
setTimeout(callback, ms); | |
} | |
(function() { | |
console.log('a'); | |
sleep(1000, function() { | |
console.log('b'); | |
}); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment