Skip to content

Instantly share code, notes, and snippets.

@wesbos
Created February 22, 2017 14:02
Show Gist options
  • Save wesbos/1866f918824936ffb73d8fd0b02879b4 to your computer and use it in GitHub Desktop.
Save wesbos/1866f918824936ffb73d8fd0b02879b4 to your computer and use it in GitHub Desktop.
Simple Async/Await Example
// 🔥 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();
@sean-xiao-zhao7
Copy link

Excellent example!

@CatalinAtun
Copy link

awesome

@Cleberw3b
Copy link

Thanks mate!

@agustinl
Copy link

Very clear!, thanks

@johndiego
Copy link

NICE =)

@SujanKumarK
Copy link

Thanks. Really simple straight forward example.

@emilcheva
Copy link

good job! :)

@sureshalagarsamy
Copy link

Great :)

@shabaoma
Copy link

Thank you very much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment