-
Notifications
You must be signed in to change notification settings - Fork 0
28 Promise Demo
Biswajit Sundara edited this page Aug 18, 2023
·
1 revision
Lets look into the problem without promise and how can we solve it using promise handling.
const fetchUser = () => {
setTimeout(() => {
username = "Biswajit";
console.log("User name is " +username);
return username;
}, 3000);
}
const fetchRole = (user) => {
if (user === 'Biswajit') {
console.log('User role is admin');
}
else
console.log('User role is ' + user);
}
const user = fetchUser();
fetchRole(user);
------------ OUTPUT ------------------
User role is undefined
User name is Biswajitconst fetchUser = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
username = "Biswajit";
resolve(username);
}, 3000);
setTimeout(() => {
reject('There is an error');
}, 5000);
})
}
const fetchRole = (user) => {
if (user === 'Biswajit') {
console.log('User role is admin');
}
else
console.log('User role is ' + user);
}
fetchUser().then((data) => {
console.log('User name is ' + data);
fetchRole(data);
}).catch((error) => {
console.log(error);
})
--------------- OUTPUT ------------------
User name is Biswajit
User role is adminconst fetchUser = async () => {
const uname = new Promise((resolve, reject) => {
setTimeout(() => {
username = "Biswajit";
resolve(username);
}, 2000);
setTimeout(() => {
reject('There is an error');
}, 3000);
})
const user = await uname;
return user;
}
const fetchRole = (user) => {
if (user === 'Biswajit') {
console.log('User role is admin');
}
else
console.log('User role is ' + user);
}
const app = async () => {
try {
const uname = await fetchUser();
console.log('User name is ' + uname);
fetchRole(uname);
}
catch (error) {
console.log(error);
}
}
app();
------------------ OUTPUT -----------------
User name is Biswajit
User role is admin