Featured resource
pluralsight tech forecast
2025 Tech Forecast

Which technologies will dominate in 2025? And what skills do you need to keep up?

Check it out
Hamburger Icon
  • Labs icon Lab
  • Core Tech
Labs

Refactoring JavaScript Promises with Async/Await

Labs

Path Info

Level
Clock icon Beginner
Duration
Clock icon 1h 23m
Published
Clock icon Apr 14, 2023

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Table of Contents

  1. Challenge

    Creating the entry point

    Learn how to use setTimeout() to simulate an asynchronous call. ### Solution To view the solution, run git diff origin/master..module2-solution in the Terminal, and press Enter to see the next lines of the difference.

    You may also browse the files of the solution by stashing your changes with git stash and running git checkout module2-solution to switch branches.

  2. Challenge

    Create directory to store JSON

    In this module, we will fill in the fetchMovies function in index.js. ### Solution To view the solution, run git diff origin/master..module3-solution in the Terminal, and press Enter to see the next lines of the difference.

    You may also browse the files of the solution by stashing your changes with git stash and running git checkout module3-solution to switch branches.

  3. Challenge

    Remove fetchMovies() and moviePromise

    Learn how to run promises in parallel with Promise.all() and Promise.race(). ### Solution To view the solution, run git diff origin/master..module4-solution in the Terminal, and press Enter to see the next lines of the difference.

    You may also browse the files of the solution by stashing your changes with git stash and running git checkout module4-solution to switch branches.

  4. Challenge

    Create an async fetchMovies()

    Have fetchMovies() use async/await syntax instead of traditional promises. ### Solution To view the solution, run git diff origin/master..module5-solution in the Terminal, and press Enter to see the next lines of the difference.

    You may also browse the files of the solution by stashing your changes with git stash and running git checkout module5-solution to switch branches.

  5. Challenge

    Create an async fetchBooks()

    Have fetchBooks() use async/await syntax instead of traditional promises. ### Solution To view the solution, run git diff origin/master..module6-solution in the Terminal, and press Enter to see the next lines of the difference.

    You may also browse the files of the solution by stashing your changes with git stash and running git checkout module6-solution to switch branches.

  6. Challenge

    Import new async methods

    Turn our functions utilizing Promise.all() and Promise.race() into async functions. ### Solution To view the solution, run git diff origin/master..module7-solution in the Terminal, and press Enter to see the next lines of the difference.

    You may also browse the files of the solution by stashing your changes with git stash and running git checkout module7-solution to switch branches.

  7. Challenge

    Return an error in getBooksAndMoviesAsync()

    In this module, you'll learn how to handle errors in promises. ### Solution To view the solution, run git diff origin/master..module8-solution in the Terminal, and press Enter to see the next lines of the difference.

    You may also browse the files of the solution by stashing your changes with git stash and running git checkout module8-solution to switch branches.

  8. Challenge

    Create a timer to be cleared later

    Learn to create and clear timeouts created with setTimeout(). ### Solution To view the solution, run git diff origin/master..module9-solution in the Terminal, and press Enter to see the next lines of the difference.

    You may also browse the files of the solution by stashing your changes with git stash and running git checkout module9-solution to switch branches.

Software engineer in Chicago with 10+ years of experience working Javascript applications on both the client side and the server side.

What's a lab?

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Provided environment for hands-on practice

We will provide the credentials and environment necessary for you to practice right within your browser.

Guided walkthrough

Follow along with the author’s guided walkthrough and build something new in your provided environment!

Did you know?

On average, you retain 75% more of your learning if you get time for practice.