Last active
December 31, 2018 12:56
-
-
Save inferno7291/878ecacb6c335d2d26de3c3d578236ff to your computer and use it in GitHub Desktop.
Example promise javascript function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* ES5, using Bluebird */ | |
var isMomHappy = true; | |
// Promise | |
var willIGetNewPhone = new Promise( | |
function (resolve, reject) { | |
if (isMomHappy) { | |
var phone = { | |
brand: 'Samsung', | |
color: 'black' | |
}; | |
resolve(phone); | |
} else { | |
var reason = new Error('mom is not happy'); | |
reject(reason); | |
} | |
} | |
); | |
// 2nd promise | |
var showOff = function (phone) { | |
var message = 'Hey friend, I have a new ' + | |
phone.color + ' ' + phone.brand + ' phone'; | |
return Promise.resolve(message); | |
}; | |
var askMom = function () { | |
console.log('before asking Mom'); // log before | |
willIGetNewPhone | |
.then(showOff) | |
.then(function (fulfilled) { | |
console.log(fulfilled); | |
}) | |
.catch(function (error) { | |
console.log(error.message); | |
}); | |
console.log('after asking mom'); // log after | |
} | |
askMom(); | |
/_ ES6 _/ | |
const isMomHappy = true; | |
// Promise | |
const willIGetNewPhone = new Promise( | |
(resolve, reject) => { // fat arrow | |
if (isMomHappy) { | |
const phone = { | |
brand: 'Samsung', | |
color: 'black' | |
}; | |
resolve(phone); | |
} else { | |
const reason = new Error('mom is not happy'); | |
reject(reason); | |
} | |
} | |
); | |
const showOff = function (phone) { | |
const message = 'Hey friend, I have a new ' + | |
phone.color + ' ' + phone.brand + ' phone'; | |
return Promise.resolve(message); | |
}; | |
// call our promise | |
const askMom = function () { | |
willIGetNewPhone | |
.then(showOff) | |
.then(fulfilled => console.log(fulfilled)) // fat arrow | |
.catch(error => console.log(error.message)); // fat arrow | |
}; | |
askMom(); | |
/_ ES7 _/ | |
const isMomHappy = true; | |
// Promise | |
const willIGetNewPhone = new Promise( | |
(resolve, reject) => { | |
if (isMomHappy) { | |
const phone = { | |
brand: 'Samsung', | |
color: 'black' | |
}; | |
resolve(phone); | |
} else { | |
const reason = new Error('mom is not happy'); | |
reject(reason); | |
} | |
} | |
); | |
// 2nd promise | |
async function showOff(phone) { | |
return new Promise( | |
(resolve, reject) => { | |
var message = 'Hey friend, I have a new ' + | |
phone.color + ' ' + phone.brand + ' phone'; | |
resolve(message); | |
} | |
); | |
}; | |
// call our promise | |
async function askMom() { | |
try { | |
console.log('before asking Mom'); | |
let phone = await willIGetNewPhone; | |
let message = await showOff(phone); | |
console.log(message); | |
console.log('after asking mom'); | |
} | |
catch (error) { | |
console.log(error.message); | |
} | |
} | |
(async () => { | |
await askMom(); | |
})(); | |
Credit: https://scotch.io/tutorials/javascript-promises-for-dummies |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment