Promises in JavaScript
//Reference: https://www.youtube.com/watch?v=DHvZLI7Db8E //Below function is a basic promise function syntax let p = new Promise((resolve, reject) => { let n = 1 + 1; if(n == 2){ resolve("Success") } else{ reject("Rejected") } }) p.then((message) => { console.log("This is in the then " + message) }).catch((message) => { console.log("This is in the catch " + message) }) //***************************************************************** //Another example similar to callback let userLeft = false; let userWatchingCatMeme = false; function watchTutorialCallback(){ return new Promise((resolve, reject) => { if(userLeft){ reject({ name: 'user left', message: ':(' }) } else if(userWatchingCatMeme){ reject({ name: 'user watching cat meme', message: ':(' }) } else{ resolve('Everything is fine!') } }) } watchTutorialCallback().then((message) => { console.log('Success: ' + message); }).then((message) => { //We can call multiple then console.log('Success: ' + message); }).catch((error) => { console.log(error.name + ' ' + error.message); }) //********************************************************************* //Cascading/depending promises using normal function let cleanTheRoom = function(){ return new Promise(function (resolve, reject) { setTimeout(function(){ resolve('Cleaned the room!'); }, 3000); }); }; let removeGarbage = function(message){ return new Promise(function (resolve, reject) { resolve( message + 'Removed the garbage!'); }); }; let wonIceCream = function(message){ return new Promise(function (resolve, reject) { resolve(message + 'Won the Ice Cream!'); }); }; cleanTheRoom().then( function(result) { return removeGarbage(result); }).then(function(result) { return wonIceCream(result); }).then(function(result) { console.log(result); }) //********************************************************************* //Cascading/depending promises using arrow function let cleanTheRoom = () => { return new Promise((resolve, reject) => { setTimeout(() => { resolve('Cleaned the room!'); }, 3000); }); }; let removeGarbage = (message) => { return new Promise((resolve, reject) => { resolve( message + 'Removed the garbage!'); }); }; let wonIceCream = (message) => { return new Promise((resolve, reject) => { resolve(message + 'Won the Ice Cream!'); }); }; cleanTheRoom().then((result) => { return removeGarbage(result); }).then((result) => { return wonIceCream(result); }).then((result) => { console.log(result); })
0 Comments