/* * Creating Promise */ // let promise = new Promise(function (resolve, reject) { // // long running operation // // when success -> resolve // // when failure -> reject // let longRunning = function () { // let msg = "Message"; // setTimeout(() => { // resolve(msg) // }, 1000); // takes ~1s to complete // }; // longRunning(); // don't wait for this function to complete // }); // console.log(promise); // .then(), .catch() again are asynchronous // console.log("Before"); // promise // .then(function (msg) { // console.log("Success: ", msg); // }) // .catch(function (err) { // console.log("Failure: ", err); // }); // console.log("After"); /* * Chaining Promises */ // let promise1 = new Promise(function (resolve, reject) { // let longRunning1 = function () { // let msg = "Promise1"; // setTimeout(() => { // resolve(msg) // }, 2000); // takes ~2s to complete // }; // longRunning1(); // don't wait for this function to complete // }); // let promise2 = new Promise(function (resolve, reject) { // let longRunning2 = function () { // let msg = "Promise2"; // setTimeout(() => { // resolve(msg) // }, 1000); // takes ~1s to complete // }; // longRunning2(); // }); // Case 1 - fetching promise2 output only after promise1 is fulfilled // promise1 // .then(function (msg) { // console.log("Promise 1 Success: ", msg); // return promise2; // }) // .then(function (msg) { // console.log("Promise 2 Success: ", msg); // }) // .catch(function (err) { // console.log("Failure: ", err); // }); // Case 2 - fetching promise2 output independent of promise1 // promise1 // .then(function (msg) { // console.log("Promise 1 Success: ", msg); // }) // .catch(function (err) { // console.log("Failure: ", err); // }); // promise2 // .then(function (msg) { // console.log("Promise 2 Success: ", msg); // }) // .catch(function (err) { // console.log("Failure: ", err); // }); /* * Promise shorthand */ // Promise - normal syntax // function longRunning() { // if (true) { // return new Promise((resolve, reject) => { // resolve("longRunning"); // }); // } // } // let promise = longRunning(); // promise // .then((msg) => console.log("Success: ", msg)) // .catch((err) => console.log("Error: ", err)); // Promise - shorthand // function longRunning1() { // if (true) { // return Promise.resolve("longRunning1"); // } // } // let promiseShorthand = longRunning1(); // promiseShorthand // .then((msg) => console.log("Success: ", msg)) // .catch((err) => console.log("Error: ", err));