xxxxxxxxxx
function makeRequest(method, url) {
return new Promise((resolve, reject) => {
let request = new XMLHttpRequest()
request.open(method, url)
request.onload = resolve
request.onerror = reject
request.send()
})
}
makeRequest('GET', 'https://url.json')
.then((event) => {
console.log(event.target.response)
})
.catch((err) => {
throw new Error(err)
})
xxxxxxxxxx
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('foo');
}, 300);
});
myPromise
.then(handleResolvedA, handleRejectedA)
.then(handleResolvedB, handleRejectedB)
.then(handleResolvedC, handleRejectedC);
xxxxxxxxxx
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
const promise = new Promise((resolve, reject) => {
setTimeout(()=>{
let flag = 0; // true fasle 1 or 0
if(!flag){
resolve({name:'Malik Amir Hamza' , id:1});
}
else{
reject('error something went wrong');
}
},2000);
});
promise
.then((user)=>{console.log(user)})
.catch((error)=>{console.log(error)});
</script>
</body>
</html>
xxxxxxxxxx
//promise is an object that give result of request or reject request
//creation of promise
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
console.log('got the user');
// resolve({ user: 'shirshak' });
reject(new Error('User not logged in'));
}, 2000);
});
//consume of promise
promise
.then(user => {
console.log(user);
})
.catch(err => console.log(err.message));
xxxxxxxxxx
----------------------------------------
Promise.all() allSettled() race()
----------------------------------------
* Promise.all() :
- all() method is used when all promises are expected to return the
resolved state.
- showing result at a particular follow sequence.
// Example:
const p1 = new Promise((resolve,reject)=>{
setTimeout(()={ resolve("Promise3"); },2000) );
Promise.all([p1,p2,p3]).then((prMsgs)=>{ console.log(prMsgs); })
* Promise.allSettel():
- showing all the result regardless resolve or reject
- It will show resolve or reject promises one by one.
* Promise.race():
- From the list of promises if any promise returns the result first
then it will show that promise result.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Promise :
//Simple promise example:
const data = new Promise((resolve, reject) => {
if (1 > 3) {
resolve('Working fine')
} else {
reject('Something wrong')
}
})
data.then((res) => {
console.log(`Success=>`, res)
})
data.catch((err) => {
console.log(`Error=>`, err)
})
xxxxxxxxxx
const studentRol=new Promise((resolve, reject) => {
setTimeout(()=>{
/**this function will give the value Of tageted studebt Roll number */
let RollOffStd=[1,2,3,4,5,6,7,8];
for (let index = RollOffStd[RollOffStd.length-1]+1 ; index <50; index++) {
RollOffStd.push(index)
}
resolve( RollOffStd)
reject('My name is Noor mohammad ')
},1000)
})
const mybiodata=(gRollOfStudent /* this is First parameter OF ( mybiodata function ) and You can change parameter value */)=>{
return new Promise((resolve, reject) => {
setTimeout((x) => {
let bio={
myname : 'Noor mohammad Patwary ' ,
age : 25 ,
}
resolve(`my name is ${bio.myname } and my age = ${bio.age } and my roll is =${x} ` )
}, 1000,gRollOfStudent);
})
}
studentRol.then(( RollOfStudent)=>{
console.log(RollOfStudent); /** From here we are gating the Value OF student roll number */
mybiodata(RollOfStudent[1] /* this is First Argument OF ( mybiodata function )*/).then((fff)=>{
console.log(fff);
})
}).catch((x)=>{
console.log(x);
})
xxxxxxxxxx
/*
A promise is a building object of JavaScript, using it we can easily do
asynchronous tasks. Also, the concept that is used to create clean code
basically promises.
*/
//Promise
let firstPromise = new Promise((resolved, reject) => {
let fullName = 'Muhammad Shahnewaz';
setTimeout(() => resolved(fullName), 3000); //we need to use setTimeout()
}).then((name) => {
console.log('I am ' + name); //Muhammad Shahnewaz
});
xxxxxxxxxx
function asyncFunc() {
return new Promise((resolve, reject) => {
setTimeout(() => {
const result = Math.random();
result > 0.5 ? resolve(result) : reject('Oppps....I cannot calculate')
}, 1)
});
}
for (let i=0; i<10; i++) {
asyncFunc()
.then(result => console.log('Result is: ' + result))
.catch(result => console.log('Error: ' + result))
}
xxxxxxxxxx
// make new promise ... so this object will promise us that it will hold an Asynchronous action
// some times promise resolve and some times promise get rejected
const A = new Promise((resolve, reject) => {
setTimeout(() => {
// here we pass argument if promise get resolved
resolve('Done');
// here we pass argument if promise get rejected
reject('Didn"t');
}, 3000);
});
// design handling callback function for resolve
let handleResolvedA = (massage)=>{console.log(massage)}
// design handling callback function for reject
let handleRejectedA = (massage)=>{console.log(massage)}
// do handling for both
A.then(handleResolvedA, handleRejectedA)
xxxxxxxxxx
let promise = new Promise((resolve, reject) => {
// Asynchronous operation
if (errorOccurred) {
reject(new Error("An error occurred."));
} else {
resolve(result);
}
});