javascript promises
var promise = new Promise(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 */ }
);
const p1 = new Promise((resolve, reject) => {
console.log("Promise has started");
const lifeIsEasy = false;
if (lifeIsEasy) {
//Value to be returned if the promise is resolved
//return value is optional
resolve("No it's not");
}
else {
//Value to be returned if the promise is rejected
//return value is also optional
reject("welcome to the real world");
}
});
//then is executed when the promise is resolved
p1.then(value => {
console.log(value);
})
//catch is executed when the promise is rejected
.catch (err => {
console.log(err);
});
/*expected output
Promise has started
welcome to the real world*/
let myFirstPromise = new Promise((resolve, reject) => {
// We call resolve(...) when what we were doing asynchronously was successful, and reject(...) when it failed.
// In this example, we use setTimeout(...) to simulate async code.
// In reality, you will probably be using something like XHR or an HTML5 API.
setTimeout( function() {
resolve("Success!") // Yay! Everything went well!
}, 250)
})
myFirstPromise.then((successMessage) => {
// successMessage is whatever we passed in the resolve(...) function above.
// It doesn't have to be a string, but if it is only a succeed message, it probably will be.
console.log("Yay! " + successMessage)
});
const promiseA = new Promise( (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 posts = [
{name:"Mark42",message:"Nice to meet you"},
{name:"Veronica",message:"I'm everywhere"}
];
function Create_Post(){
setTimeout(() => {
posts.forEach((item) => {
console.log(`${item.name} --- ${item.message}`);
});
},1000);
}
function New_Post(add_new_data){
return new Promise((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));