Async/await is a syntax in JavaScript that allows you to write asynchronous code in a synchronous manner. It works on top of promises, where ‘async’ declares a function and ‘await’ pauses execution until a promise is resolved, making the code easier to read and maintain.
In depth
The async/await syntax was introduced in ES2017 to simplify the handling of asynchronous code in JavaScript. An 'async' function always returns a promise, and inside an async function, you can use 'await' to wait for a promise to resolve. This prevents callback hell and makes it easier to handle sequences of asynchronous operations, as the code reads more like synchronous code. However, it’s important to handle errors using try/catch, as unhandled promise rejections can lead to unexpected behavior in your application. Moreover, not every function can be made async, especially those that don't need to perform asynchronous operations, as it can lead to unnecessary complexity and overhead.
Example scenario
In a web application that fetches user data from an API, using async/await allows a developer to write clear and concise code. Instead of chaining multiple .then() calls for each API request, which can get confusing, the developer can declare an async function, await the user data fetch, and then immediately use that data. This linear approach provides clarity, making it easier to follow the flow of data and understand the program's logic at a glance.
Common mistakes
One common mistake is forgetting to await a promise, which can lead to unexpected results or values being returned too early. Developers might assume the promise is resolved instantly, causing bugs that can be hard to track down. Another mistake is using async/await in a non-async function. This will throw an error, as only async functions can use await, leading to confusion about the need to declare functions properly.
Follow-up questions
- How do you handle errors in async/await syntax?
- Can you give an example of how you would structure an async function?
- What happens if an awaited promise is rejected?
- Why might you choose promises over async/await in certain scenarios?

Want all 2,000 questions in one PDF?
- Short answers, in-depth explanations, common mistakes and follow-ups
- 89 topics, from Beginner to Architect, with a clickable contents list
- 226 extra questions that are not on this website
- Free Bonus Pack: 30-day study plan, behavioral questions, salary scripts
Includes 226 extra questions that are not on this site, plus a free Bonus Pack.
Get both books for $9.99 (save $2.99):
The material stays free to read online. This is the organised, offline, print-ready PDF edition. Secure payment by PayPal; your personal download link is emailed after payment is confirmed. Digital product, no shipping.