Promise chaining means executing multiple asynchronous tasks one after another, where the result of one Promise is used in the next Promise.
Simple idea:
Task-1 finishes
↓
Use result for Task-2
↓
Task-2 finishes
↓
Use result for Task-3Example:
Get user from server
↓
Using user id, get user orders
↓
Using order id, get payment detailsStep 1: Get User
function getUser() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({
id: 1,
name: "Lokman"
});
}, 1000);
});
}This sends:
{ id: 1, name: "Lokman" }Step 2: Get Orders using User ID
function getOrders(userId) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({
orderId: 101,
product: "Laptop"
});
}, 1000);
});
}This sends:
{ orderId: 101, product: "Laptop" }Step 3: Get Payment using Order ID
function getPayment(orderId) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Payment successful");
}, 1000);
});
}Promise Chain
getUser()
.then(user => {
console.log(user);
return getOrders(user.id); // return Promise 2
})
.then(order => {
console.log(order);
return getPayment(order.orderId); // return Promise 3
})
.then(payment => {
console.log(payment);
})
.catch(error => {
console.log(error);
});
No comments:
Post a Comment