We may earn an affiliate commission when you visit our partners.
Wes Higbee

When it comes to writing asynchronous code in JavaScript, callbacks can be a hassle. In this course, you'll see alternatives to callbacks, including ES6 promises, and how to combine generators with promises to write async code in a synchronous style.

Read more

When it comes to writing asynchronous code in JavaScript, callbacks can be a hassle. In this course, you'll see alternatives to callbacks, including ES6 promises, and how to combine generators with promises to write async code in a synchronous style.

In this course, Modern Asynchronous JavaScript, you will learn how to write asynchronous code that's a joy to maintain, not a burden. You will learn how to reason about promises, an alternative to callbacks, by creating a promise framework. Seeing promises from the perspective of a producer helps reason better about being the consumer of promise based APIs. Then, you will learn about ES6 generators and how to combine them with promises to write code that looks synchronous but that's actually asynchronous. This style cuts out the inherent verbosity of callbacks and even promises alone. When you're finished with this course, you'll know how to write asynchronous code in a fashion that's not a hassle to maintain.

Enroll now

What's inside

Syllabus

Callbacks
Lab Setup
Building a Promise Framework
Chaining Operations (Promises)
Read more
Cushioning Callbacks
ES6 Promises and Beyond
Building a Generator-based Control Flow Function
ES2018 Async/Await and Other Generator Control Flow Libraries

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops strong foundation in advanced JavaScript concepts and tools (promises, generators) for writing asynchronous code
Helps learners improve reasoning about promises and how to use them as an alternative to callbacks
Shows how to write code that looks synchronous but that's actually asynchronous to avoid verbosity
Covers necessary prerequisites (building a promise framework) to fully understand promises
Teaches learners to think about promises from the perspective of both a producer and a consumer
Provides hands-on lab experience in building generators for control flow and event handling

Save this course

Save Modern Asynchronous JavaScript to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Modern Asynchronous JavaScript with these activities:
Review JavaScript Callback Functions
Brush up on your understanding of JavaScript callback functions to prepare for the course.
Show steps
  • Read the documentation on JavaScript callback functions.
  • Review examples of callback functions in JavaScript code.
Practice working with promises
Promises are a fundamental concept in asynchronous programming (and this course). Review your understanding of promises so that you have a strong foundation for the rest of this course.
Browse courses on Promises
Show steps
  • Build a simple promise-based function.
  • Chain multiple promises together.
  • Handle rejected promises.
Review JavaScript callback functions
Brings existing JavaScript callback skills up to speed to better prepare for this course's material on alternative asynchronous practices.
Show steps
  • Identify existing knowledge of callback functions.
  • Review examples of callback functions.
  • Practice writing callback functions.
13 other activities
Expand to see all activities and additional details
Show all 16 activities
Complete ES6 Promise Practice Drills
Perform repetitive exercises to reinforce your understanding of ES6 Promise syntax and semantics.
Show steps
  • Complete the exercises in the following link: https://es6.io/promise-exercises/
Explore ES6 generators
ES6 generators are a powerful tool for writing asynchronous code. Explore some tutorials on ES6 generators to get a better understanding of how they work.
Show steps
  • Find a tutorial on ES6 generators.
  • Follow the tutorial and complete the exercises.
  • Experiment with ES6 generators in your own code.
Solve Generator-Based Control Flow Challenges
Practice writing and solving generator-based control flow challenges to improve your understanding of their mechanics and applications.
Show steps
  • Solve the challenges in the following link: https://jsbin.com/xapujelodi/edit?js,console
Create a diagram of the asynchronous JavaScript workflow
Provides a structured framework for students to develop a deep understanding of the asynchronous workflow in JavaScript.
Show steps
  • Identify the key components of the asynchronous workflow.
  • Create a visual representation of the workflow.
  • Explain the flow of data through the workflow.
Solve asynchronous coding challenges
Solving asynchronous coding challenges is a great way to practice writing asynchronous code and improve your problem-solving skills.
Browse courses on Coding Challenges
Show steps
  • Find a website or platform that offers asynchronous coding challenges.
  • Select a challenge and solve it.
  • Review your solution and identify areas for improvement.
Follow a tutorial on ES6 generators and how to use them with promises
Provides students with structured guidance to explore ES6 generators and their combination with promises, expanding their understanding beyond the course material.
Show steps
  • Find a comprehensive tutorial on ES6 generators and promises.
  • Follow the tutorial step-by-step.
  • Implement the concepts in the tutorial in your own code.
Follow Async/Await Tutorial for Advanced Generators
Follow a comprehensive tutorial on Async/Await to enhance your understanding of advanced generator control flow techniques and their use in asynchronous programming.
Show steps
  • Follow the tutorial in the following link: https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await
Practice writing asynchronous code with promises
Enhances students' proficiency in writing asynchronous code using promises, a core concept covered in this course.
Browse courses on Promises
Show steps
  • Set up a development environment.
  • Create a promise-based function.
  • Handle the promise resolution and rejection.
  • Chain multiple promises together.
  • Practice error handling with promises.
Develop a presentation on best practices for writing asynchronous JavaScript code
Challenges students to synthesize their knowledge and present it effectively, reinforcing their understanding of asynchronous JavaScript principles.
Show steps
  • Research best practices for writing asynchronous JavaScript code.
  • Create an outline for your presentation.
  • Develop slides or other visual aids to support your presentation.
  • Practice your presentation.
  • Deliver your presentation to an audience or record it for later sharing.
Implement a Promise-Based HTTP Request Client
Create a project that demonstrates your mastery of Promises by building a Promise-based HTTP request client.
Show steps
  • Create a new JavaScript project.
  • Write a function to make an HTTP request using Promises.
  • Create a simple UI to interact with the HTTP request client.
Create a small project that utilizes promises and generators
Applies students' knowledge of promises and generators in a practical setting, reinforcing their understanding and solidifying their skills.
Show steps
  • Brainstorm a project idea.
  • Set up a development environment.
  • Implement the project using promises and generators.
  • Test and debug the project.
  • Deploy the project.
Build a JavaScript Application Using ES6 Generators for Control Flow
Develop a real-world JavaScript application that leverages ES6 generators for control flow to apply your knowledge and enhance your practical skills.
Show steps
  • Identify a problem or need that you can solve with a JavaScript application.
  • Design the architecture of your application, including the use of ES6 generators for control flow.
  • Implement your design and write the necessary code.
  • Test your application and iterate on the design and implementation until it meets your requirements.
  • Deploy your application and share it with others.
Contribute to an open-source project that uses promises and generators
Engages students in real-world application of asynchronous JavaScript techniques through open-source contribution.
Show steps
  • Identify an open-source project that aligns with your interests.
  • Review the project's documentation and codebase.
  • Identify an area where you can contribute using promises and generators.
  • Make a pull request with your proposed changes.
  • Collaborate with the project maintainers to refine and merge your contribution.

Career center

Learners who complete Modern Asynchronous JavaScript will develop knowledge and skills that may be useful to these careers:
Front-End Developer
Front-end developers are responsible for the client-side of web development, including the design, coding, and implementation of the graphical user interface (GUI) of websites and applications. The course, "Modern Asynchronous JavaScript," will teach you how to write asynchronous code in a fashion that's not a hassle to maintain. This is an essential skill for front-end developers, as asynchronous code is used to handle user interactions, animations, and other tasks that need to be performed without blocking the main thread. By taking this course, you will learn how to build a solid foundation in asynchronous JavaScript, which is in high demand in the tech industry.
Full-Stack Developer
Full-stack developers are responsible for the entire software development process, from design and coding to testing and deployment. The course, "Modern Asynchronous JavaScript," will teach you how to write asynchronous code in a fashion that's not a hassle to maintain. This is a crucial skill for full-stack developers, as asynchronous code is used to handle user interactions, database queries, and other tasks that need to be performed without blocking the main thread. By taking this course, you will gain a comprehensive understanding of asynchronous JavaScript, which is a valuable asset for full-stack developers.
Back-End Developer
Back-end developers are responsible for the server-side of web development, including the coding and implementation of the business logic and data management of websites and applications. The course, "Modern Asynchronous JavaScript," will teach you how to write asynchronous code in a fashion that's not a hassle to maintain. This is a useful skill for back-end developers, as asynchronous code is used to handle database queries, user authentication, and other tasks that need to be performed without blocking the main thread. By taking this course, you will enhance your asynchronous JavaScript skills, which is a beneficial asset for back-end developers.
Mobile App Developer
Mobile app developers are responsible for the design, coding, and implementation of mobile applications. The course, "Modern Asynchronous JavaScript," will teach you how to write asynchronous code in a fashion that's not a hassle to maintain. This is a beneficial skill for mobile app developers, as asynchronous code is used to handle user interactions, animations, and other tasks that need to be performed without blocking the main thread. By taking this course, you will develop a strong foundation in asynchronous JavaScript, which is a valuable asset for mobile app developers.
Software Engineer
Software engineers are responsible for the design, coding, testing, and deployment of software systems. The course, "Modern Asynchronous JavaScript," will teach you how to write asynchronous code in a fashion that's not a hassle to maintain. This is a useful skill for software engineers, as asynchronous code is used to handle user interactions, database queries, and other tasks that need to be performed without blocking the main thread. By taking this course, you will gain a comprehensive understanding of asynchronous JavaScript, which is a valuable asset for software engineers.
Data Scientist
Data scientists are responsible for collecting, analyzing, and interpreting data to extract insights and solve business problems. The course, "Modern Asynchronous JavaScript," may be useful for data scientists who need to handle asynchronous data processing tasks, such as real-time data streaming or batch processing. By taking this course, you will gain a basic understanding of asynchronous JavaScript, which can complement your data science skills.
Machine Learning Engineer
Machine learning engineers are responsible for designing, developing, and implementing machine learning models. The course, "Modern Asynchronous JavaScript," may be useful for machine learning engineers who need to handle asynchronous tasks, such as data preprocessing or model training. By taking this course, you will gain a basic understanding of asynchronous JavaScript, which can complement your machine learning engineering skills.
Cloud Architect
Cloud architects are responsible for designing and implementing cloud computing solutions. The course, "Modern Asynchronous JavaScript," may be useful for cloud architects who need to handle asynchronous tasks, such as scaling cloud resources or processing data streams. By taking this course, you will gain a basic understanding of asynchronous JavaScript, which can complement your cloud architect skills.
DevOps Engineer
DevOps engineers are responsible for bridging the gap between development and operations teams. The course, "Modern Asynchronous JavaScript," may be useful for DevOps engineers who need to handle asynchronous tasks, such as deploying code or managing infrastructure. By taking this course, you will gain a basic understanding of asynchronous JavaScript, which can complement your DevOps engineering skills.
Business Analyst
Business analysts are responsible for analyzing business processes and identifying areas for improvement. The course, "Modern Asynchronous JavaScript," may be useful for business analysts who need to understand how asynchronous code works in order to make better recommendations. By taking this course, you will gain a basic understanding of asynchronous JavaScript, which can complement your business analysis skills.
Project Manager
Project managers are responsible for planning, executing, and controlling projects. The course, "Modern Asynchronous JavaScript," may be useful for project managers who need to understand how asynchronous code works in order to better manage their projects. By taking this course, you will gain a basic understanding of asynchronous JavaScript, which can complement your project management skills.
Technical Writer
Technical writers are responsible for creating technical documentation, such as user manuals and whitepapers. The course, "Modern Asynchronous JavaScript," may be useful for technical writers who need to understand how asynchronous code works in order to write better documentation. By taking this course, you will gain a basic understanding of asynchronous JavaScript, which can complement your technical writing skills.
Sales Engineer
Sales engineers are responsible for selling technical products and services. The course, "Modern Asynchronous JavaScript," may be useful for sales engineers who need to understand how asynchronous code works in order to better sell their products and services. By taking this course, you will gain a basic understanding of asynchronous JavaScript, which can complement your sales engineering skills.
Accountant
Accountants are responsible for managing financial records and preparing financial statements. The course, "Modern Asynchronous JavaScript," is not relevant to the field of accounting.
Lawyer
Lawyers are responsible for providing legal advice and representation. The course, "Modern Asynchronous JavaScript," is not relevant to the field of law.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Modern Asynchronous JavaScript.
Provides a comprehensive overview of the new features in ES6 and beyond, including promises. It valuable resource for anyone who wants to learn more about the latest JavaScript features.
Provides a collection of design patterns for Node.js development. It includes patterns for handling asynchronous tasks, such as the Promise pattern.
Provides a collection of design patterns for JavaScript development. It includes patterns for handling asynchronous tasks, such as the Promise pattern.
Provides a concise overview of the good parts of JavaScript. It valuable resource for anyone who wants to learn more about the language and how to use it effectively.
Provides a comprehensive overview of Node.js, including how to use promises to handle asynchronous tasks.
Provides a comprehensive overview of Node.js, including how to use promises to handle asynchronous tasks.
Provides a comprehensive overview of JavaScript, including how to use promises to handle asynchronous tasks.
Provides a comprehensive overview of JavaScript, including how to use promises to handle asynchronous tasks.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser