Created
May 5, 2018 04:24
-
-
Save frankfaustino/4ec63f18b97b0758fdeaf77d40341b58 to your computer and use it in GitHub Desktop.
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() | |
const getCoffee = () => new Promise(resolve => { | |
setTimeout(() => resolve('☕'), 2000); // it takes 2 seconds to make coffee | |
}); | |
async 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(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment