Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript Asynchronous Programming with JavaScript Exploring Async/Await Convert Promise Handling to Async/Await

Joseph Bertino
seal-mask
.a{fill-rule:evenodd;}techdegree
Joseph Bertino
Full Stack JavaScript Techdegree Student 14,652 Points

Why don't we `await` the call to `generateHTML()`?

Why don't we await the call to generateHTML(astros), since I presume that we want to only remove the button after we've generated the astronaut profiles to the screen?

1 Answer

Brandon White
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Brandon White
Full Stack JavaScript Techdegree Graduate 35,771 Points

Hi Joseph,

Great question. The reason you don't await generateHTML() is because that function isn't asynchronous. No requests are being made to the server. You're not waiting on a response. You're simply taking the data that's passed in as an argument to the function and you're wrapping it in HTML tags.

JavaScript doesn't need to pass that process off to the browser, so it won't move to the next portion of your code until it finishes executing the generateHTML() function.

Does that make sense? If not, I'll try again.

Joseph Bertino
seal-mask
.a{fill-rule:evenodd;}techdegree
Joseph Bertino
Full Stack JavaScript Techdegree Student 14,652 Points

That makes perfect sense, Brandon. I'm starting to understand the async/await paradigm now. We only call await on functions that make some external data call or otherwise rely on something else to respond. And if we have a function in which we use the await command, we have to label that function as async. Is that correct?