Skip to content

Instantly share code, notes, and snippets.

@EdwardDiehl
Forked from danharper/1-sleep-es7.js
Created December 21, 2017 13:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EdwardDiehl/1cf7263389fcb1141508553645a71361 to your computer and use it in GitHub Desktop.
Save EdwardDiehl/1cf7263389fcb1141508553645a71361 to your computer and use it in GitHub Desktop.
ES7's async/await syntax.
// ES7, async/await
function sleep(ms = 0) {
return new Promise(r => setTimeout(r, ms));
}
(async () => {
console.log('a');
await sleep(1000);
console.log('b');
})()
// 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();
});
});
})();
// 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');
});
})();
// 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