Skip to content

Instantly share code, notes, and snippets.

@elchroy
Created August 14, 2019 18:53
Show Gist options
  • Save elchroy/5587b2210c93040bf6433e1f259df473 to your computer and use it in GitHub Desktop.
Save elchroy/5587b2210c93040bf6433e1f259df473 to your computer and use it in GitHub Desktop.
Will Sentance FEMasters CS Bin Promises - http://csbin.io/promises
// Challenge 1
function sayHello() {
setTimeout(() => console.log('Hello'), 1000);
}
// Uncomment the line below when ready
sayHello(); // should log "Hello" after 1000ms
// Challenge 2
var promise = new Promise(function (resolve, reject) {
// ADD CODE HERE
setTimeout( function () {
resolve('Resolved!')
}, 1000);
});
// Should print out "Resolved!"
// ADD CODE HERE
promise.then(res => console.log(res))
// Challenge 3
promise = new Promise(function(resolve, reject) {
// ADD CODE HERE
reject('Rejected!');
})
// Should print out "Reject!"
// ADD CODE HERE
promise.then(null, err => console.log(err))
// Challenge 4
promise = new Promise(function (resolve, reject) {
// ADD CODE HERE
resolve()
});
// Uncomment the lines below when ready
promise.then(() => console.log('Promise has been resolved!'));
console.log("I'm not the promise!");
// Challenge 5
function delay(){
return new Promise(function (resolve, reject) {
return setTimeout(resolve, 1000);
})
}
// Uncomment the code below to test
// This code should log "Hello" after 1000ms
delay().then(sayHello);
// Challenge 6
//
// ADD CODE BELOW
var secondPromise = new Promise(function (resolve, reject) {
resolve('Second!');
})
var firstPromise = new Promise(function (resolve, reject) {
resolve(secondPromise);
})
firstPromise.then(res => console.log(res))
// Challenge 7
const fakePeople = [
{ name: 'Rudolph', hasPets: false, currentTemp: 98.6 },
{ name: 'Zebulon', hasPets: true, currentTemp: 22.6 },
{ name: 'Harold', hasPets: true, currentTemp: 98.3 },
]
const fakeAPICall = (i) => {
const returnTime = Math.floor(Math.random() * 1000);
return new Promise((resolve, reject) => {
if (i >= 0 && i < fakePeople.length) {
setTimeout(() => resolve(fakePeople[i]), returnTime);
} else {
reject({ message: "index out of range" });
}
});
};
function getAllData() {
const promises = [];
let i = 0;
while (i < fakePeople.length) {
promises.push(fakeAPICall(i))
i++;
}
// CODE GOES HERE
return Promise.all(promises).then(res => {
return res
})
}
getAllData().then(res => console.log(res));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment