Difference Between Promise and Async/Await #Promise #asyncawait #javascript
Hashir Mehmood
Software Engineer @Xeven Solution | Reactjs | Nodejs | Nextjs | Nestjs
Promise:
1) A Promise is an object that represents the eventual completion or failure of an asynchronous operation and its resulting value.
2) It has three states: pending, fulfilled, or rejected.
3) You can create a Promise using the Promise constructor, which takes a function with resolve and reject parameters.
4) Promises are useful for handling asynchronous code but can sometimes lead to callback hell.
Async/Await:
1) Async and await are keywords introduced in ECMAScript 2017 (ES8) to simplify asynchronous code and make it look more like synchronous code.
2) The async keyword is used to define a function as asynchronous, and it always returns a Promise.
3) The await keyword can only be used inside an async function and is used to wait for a Promise to settle. It pauses the execution of the async function until the Promise is resolved or rejected.Using async/await makes asynchronous code more readable and easier to work with, especially when dealing with multiple asynchronous operations.
领英推荐
Promise with .then() and .catch():
const myPromise = new Promise((resolve, reject) => {
// asynchronous operation
if (/* operation is successful */) {
resolve("Success!");
} else {
reject("Error!");
}
});
myPromise
.then((result) => {
console.log(result);
})
.catch((error) => {
console.error(error);
});
Here, you attach .then() to handle the resolved state and .catch() to handle the rejected state of the Promise.
Async/await with try/catch:
async function myAsyncFunction() {
try {
const result = await someAsyncOperation();
console.log(result);
} catch (error) {
console.error(error);
}
}
In the async/await syntax, the await keyword is used to wait for the resolution of a Promise, and it is typically used within an async function. The try block handles the resolved state, and the catch block handles the rejected state.
Both approaches achieve the same goal of handling asynchronous code, but async/await often provides more readable and concise code, especially when dealing with multiple asynchronous operations. It allows you to write asynchronous code in a way that looks and behaves more like synchronous code, making it easier to understand and maintain.
In summary, a Promise is an object representing the eventual completion or failure of an asynchronous operation, while async and await are keywords used to simplify the syntax of working with Promises in asynchronous functions, making the code look more like traditional synchronous code.