Skip to content

Instantly share code, notes, and snippets.

@smart-onion
Created May 31, 2025 14:40
Show Gist options
  • Select an option

  • Save smart-onion/d59a42331dc25df3d12d35b9539a34b6 to your computer and use it in GitHub Desktop.

Select an option

Save smart-onion/d59a42331dc25df3d12d35b9539a34b6 to your computer and use it in GitHub Desktop.
Promises JS11
// task 1
function createOrder(orderId){
return new Promise((resolve, reject) => {
setTimeout(() => {
let rand = Math.random() > 0.3;
if(rand){ resolve(orderId); }
else(reject(`Order ${orderId} was not created`));
console.log("Creating order:" + orderId);
}, 1000)
});
}
function processOrder(orderId) {
return new Promise((resolve, reject) => {
setTimeout(() => {
let rand = Math.random() > 0.3;
if(rand){ resolve(orderId); }
else(reject(`Order ${orderId} was not processing`));
console.log(`Processing order ${orderId}`);
}, 2000)
});
}
function deliverOrder(orderId){
return new Promise((resolve, reject) => {
setTimeout(() => {
let rand = Math.random() > 0.2;
if(rand){ resolve(orderId); }
else(reject(`Order ${orderId} was not delivered`));
console.log(`Delivering order ${orderId}`);
}, 3000)
});
}
createOrder(1)
.then(processOrder)
.then(deliverOrder)
.then((orderId) => {console.log(`Order ${orderId} completed`)})
.catch((error) => console.log(error));
// task 2
function checkEvenNumbers(number){
return new Promise((resolve, reject) => {
setTimeout(() => {
if(typeof number == "number"){
if(number % 2 === 0){
resolve(`${number} is even`);
}else{
reject(`${number} is odd`);
}
}else{
reject(`Invalid number ${number}`);
}
},1000)
})
}
checkEvenNumbers("sd")
.then((result) => {console.log(result)})
.catch((err) => {console.log(err)})
// task 3
function sumArrayAsync(array){
return new Promise( (resolve, reject) => {
if(array.length > 0){
setTimeout(() => {
let sum = array.reduce((acc, item) => acc + item, 0);
resolve(sum);
}, 1000*(array.length));
}else{
reject(`Array is empty`);
}
})
}
const main = () =>{
sumArrayAsync([1,2,4,5])
.then(result => console.log(result))
.catch((err) => {console.log(err)})
}
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment