var promise =newPromise(function(resolve, reject){// do some long running async thing…if(/* everything turned out fine */){resolve("Stuff worked!");}else{reject(Error("It broke"));}});//usage
promise.then(function(result){/* handle a successful result */},function(error){/* handle an error */});
Promises are used to handle asynchronous operations inJavaScript.They are easy to manage when dealing with multiple asynchronous operations
where callbacks can create callback hell leading to unmanageable code.
const anotherPromise =newPromise((resolve, reject)=>{setTimeout(()=>{resolve('this is the eventual value the promise will return');},300);});// CONTINUATION
anotherPromise
.then(value=>{console.log(value)})
let promise =newPromise((resolve,reject)=>{try{resolve("some data");}catch(error){reject(error);}})
promise.then(function(data){console.log(data);},function(error){console.error(error);})
const studentRol=newPromise((resolve, reject)=>{setTimeout(()=>{/**this function will give the value Of tageted studebt Roll number */letRollOffStd=[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 */)=>{returnnewPromise((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);})
/*
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.
*///Promiselet firstPromise =newPromise((resolved, reject)=>{let fullName ='Muhammad Shahnewaz';setTimeout(()=>resolved(fullName),3000);//we need to use setTimeout() }).then((name)=>{console.log('I am '+ name);//Muhammad Shahnewaz});
const count =true;let countValue =newPromise(function(resolve, reject){if(count){resolve("There is a count value.");}else{reject("There is no count value");}});console.log(countValue);
let promise =newPromise(function(resolve, reject){try{resolve("works");//if works}catch(err){reject(err);//doesn't work}}).then(alert,console.log);// if doesn't work, then console.log it, if it does, then alert "works"
We use promise to make a AsyncFunction, cose simetime we have to wait that function give
us some result.Example,if we use ajax we have await ajax data or statament._____________________________________Make a simple example._____________________________________varasyncronus_function=(number)=>{returnnewPromise((accept, reject)=>{})}
_____________________________________
thisfunctionreturn a promise Object, thet required a function executor
thisfunctions(accept, reject) are defined in the executor
function, that was needed in promise constructor.Syntax:newPromise(executor)executor=(accept, reject)=>{}iffunction end well we return a accept(), otherwise reject()
_____________________________________
Let complete asyncronus_function
_____________________________________
varasyncronus_function=(number)=>{returnnewPromise((accept, reject)=>{if(number>10)returnaccept("my first async");returnreject("my first async error")})}if it dont return any ofthis2function,Promise state is [PENDING],ifreturn accept is [RESOLVED] end ifreturn reject is [REJECTED]
_____________________________________
how we can retrieve accept or reject?
_____________________________________
there is two methods really important, that we have to consider afther we call thisfunction1).then(function(error){}) is call when promise state is [RESOLVED]2).error(function(error){}) is call when promise state is [REJECTED]3)do nothing if[PENDING]
_____________________________________
let call asyncronus_function()!!!
_____________________________________
asyncronus_function(MY_NUMBER).then(function(data){console.log(data)}).catch(error=>{console.log(error)});ifMY_NUMBER>10,asyncronus_function print data :OUTPUT my first asyncifMY_NUMBER<10, asyncronus_function print error :OUTPUT my first async error
HOPE it halp and have a nice day!
const myScore=500;functioncheckNumnbner(){console.log('Course Enrolment Process');const myPromise=newPromise((resolve , reject)=>{if(myScore >=80){resolve("First one is true");}else{setTimeout(()=>{reject("SORRY we CANT offering you a job")},2000);}})return myPromise;}functionofferLater(){const newPromise2=newPromise((resolve)=>{setTimeout(()=>{resolve("congratulation we are offering you a job")},500);})return newPromise2;}functionthanksT(){constEnd=newPromise(()=>{setTimeout(()=>{console.log(('Thanks to try'));},2000)})returnEnd}checkNumnbner().then(offerLater).then(value=>console.log(value)).then(thanksT).catch((error)=>{console.log(error);})
let promise =newPromise(function(resolve, reject){try{resolve("works");//if works}catch(err){reject(err);//doesn't work}}).then(alert,console.log);// if doesn't work, then console.log it, if it does, then alert "works"
let myPromise =newPromise(function(myResolve, myReject){// "Producing Code" (May take some time)myResolve();// when successfulmyReject();// when error});// "Consuming Code" (Must wait for a fulfilled Promise)
myPromise.then(function(value){/* code if successful */},function(error){/* code if some error */});
/*
Promise is a constructor function, so you need to use the new keyword to
create one. It takes a function, as its argument, with two parameters -
resolve and reject. These are methods used to determine the outcome of the
promise.
The syntax looks like this:
*/const myPromise =newPromise((resolve, reject)=>{});
let num =10;//call back functionconst promis =newPromise(function(resolve, reject){if(num >5){//this resolve method will send data to resoleveData variableresolve(" Problem resolved successfully")}else{//this reject method will send data to rejectData variablereject("sorry problem couldn't solve")}})//resoleveData variable
promis.then(function(resolveData){console.log(resolveData)//rejectData variable}).catch(function(rejectData){console.log(rejectData)})
var posts =[{name:"Mark42",message:"Nice to meet you"},{name:"Veronica",message:"I'm everywhere"}];functionCreate_Post(){setTimeout(()=>{
posts.forEach((item)=>{console.log(`${item.name} --- ${item.message}`);});},1000);}functionNew_Post(add_new_data){returnnewPromise((resolve, reject)=>{setTimeout(()=>{
posts.push(add_new_data);var error =false;if(error){reject("Something wrong in </>, Try setting me TRUE and check in console");}else{resolve();}},2000);})}New_Post({name:"War Machine",message:"I'm here to protect"}).then(Create_Post).catch(err=>console.log(err));
// 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 rejectedconstA=newPromise((resolve, reject)=>{setTimeout(()=>{// here we pass argument if promise get resolvedresolve('Done');// here we pass argument if promise get rejectedreject('Didn"t');},3000);});// design handling callback function for resolve lethandleResolvedA=(massage)=>{console.log(massage)}// design handling callback function for reject lethandleRejectedA=(massage)=>{console.log(massage)}// do handling for bothA.then(handleResolvedA, handleRejectedA)
let examplePromise =newPromise(function(resolve, reject){let sum;setTimeout(function(){
sum =5+6;if(sum >10){resolve(sum);}else{reject('The promise has been rejected');}},2000);});
const promiseA =newPromise((resolutionFunc,rejectionFunc)=>{resolutionFunc(777);});// At this point, "promiseA" is already settled.
promiseA.then((val)=>console.log("asynchronous logging has val:",val));console.log("immediate logging");// produces output in this order:// immediate logging// asynchronous logging has val: 777
var myImage =document.querySelector('#example');functionloaded(){// bien, la imagen cargó}if(myImage.complete){loaded();}else{
myImage.addEventListener('load', loaded);}
myImage.addEventListener('error',function(){// ocurrió un imprevisto});
let num =2;//call back functionconst promis =newPromise(function(resolve, reject){if(num >5){//this resolve method will send data to resoleveData variableresolve(" Problem resolved successfully")}else{//this reject method will send data to rejectData variablereject("sorry problem couldn't solve")}})
promis.then(//resoleveData variablefunction(resolveData){console.log(resolveData)}).catch(//rejectData variablefunction(rejectData){console.log(rejectData)})
A promise is an object that may produce a single value sometime in the future: either a resolved value, or a reason that it's not resolved(e.g., a network error occurred)
let dataIsLoading =true;
promise
.then(data=>{// do something with data}).catch(error=>{// do something with error}).finally(()=>{
dataIsLoading =false;})
Promises make async javascript easier as they are easy to use and write than callbacks.Basically, promise is just an object , that gives us either success ofasync opertion or failue ofasync operations
APromise is in one of these states:pending: initial state, neither fulfilled nor rejected.fulfilled: meaning that the operation was completed successfully.rejected: meaning that the operation failed.
functionexamplePromise(){let promiseToReturn =newPromise(function(resolve, reject){let sum;setTimeout(function(){
sum =5+6;if(sum >10){resolve(sum);}else{reject('The promise has been rejected');}},2000);});return promiseToReturn;}console.log('some piece of code');examplePromise().then(function(result){console.log(result);}).catch(function(error){console.log(error);});console.log('another piece of code');
MethodDescriptionall(iterable)Waitsfor all promises to be resolved or any one to be rejected
allSettled(iterable)Waits until all promises are either resolved or rejected
any(iterable)Returns the promise value as soon as any one of the promises is fulfilled
race(iterable)Wait until any of the promises is resolved or rejected
reject(reason)Returns a newPromise object that is rejected for the given reason
resolve(value)Returns a newPromise object that is resolved with the given value
catch()Appends the rejection handler callback
then()Appends the resolved handler callback
finally()Appends a handler to the promise