Created
February 22, 2017 14:02
-
-
Save wesbos/1866f918824936ffb73d8fd0b02879b4 to your computer and use it in GitHub Desktop.
Simple Async/Await Example
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
// 🔥 Node 7.6 has async/await! Here is a quick run down on how async/await works | |
const axios = require('axios'); // promised based requests - like fetch() | |
function getCoffee() { | |
return new Promise(resolve => { | |
setTimeout(() => resolve('☕'), 2000); // it takes 2 seconds to make coffee | |
}); | |
} | |
async function go() { | |
try { | |
// but first, coffee | |
const coffee = await getCoffee(); | |
console.log(coffee); // ☕ | |
// then we grab some data over an Ajax request | |
const wes = await axios('https://api.github.com/users/wesbos'); | |
console.log(wes.data); // mediocre code | |
// many requests should be concurrent - don't slow things down! | |
// fire off three requests and save their promises | |
const wordPromise = axios('http://www.setgetgo.com/randomword/get.php'); | |
const userPromise = axios('https://randomuser.me/api/'); | |
const namePromise = axios('https://uinames.com/api/'); | |
// await all three promises to come back and destructure the result into their own variables | |
const [word, user, name] = await Promise.all([wordPromise, userPromise, namePromise]); | |
console.log(word.data, user.data, name.data); // cool, {...}, {....} | |
} catch (e) { | |
console.error(e); // 💩 | |
} | |
} | |
go(); |
awesome
Thanks mate!
Very clear!, thanks
NICE =)
Thanks. Really simple straight forward example.
good job! :)
Great :)
Thank you very much.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Excellent example!