Middle
Γιατί εισήχθη η κατασκευή async/await και πώς βελτιώνει την εργασία με ασύγχρονο κώδικα;
sobes.tech AI
Απάντηση από AI
Async/await was introduced to simplify writing asynchronous code, making it more readable and maintainable compared to traditional callbacks or promises.
How it improves:
- Readability: Code with
async/awaitlooks like synchronous, line-by-line code, which greatly simplifies understanding. - Error handling: Allows using standard constructs like try/catch to handle errors in asynchronous code, unlike
.catch()in promises. - Debugging: Breakpoints work just like in synchronous code, easing the debugging process.
- Less "callback hell": Eliminates nested callback problems, which lead to unreadable code.
Example:
Code with promises:
// Example with promises
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error('Error fetching data:', error);
});
Same code with async/await:
// Example with async/await
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Error fetching data:', error);
}
}
fetchData();
The async/await construct is built on promises and is syntactic sugar for working with them. An async-marked function always returns a promise. The await operator can only be used inside async functions and "waits" for the promise to resolve, returning its resolved value or throwing an exception in case of error.