async/await
by GarfieldKlon
JavaScript
//https://hackernoon.com/understanding-promises-in-javascript-13d99df067c1
function getRandomNumber(start = 1, end = 10) {
//works when both start and end are >=1
return (parseInt(Math.random() * end) % (end - start + 1)) + start;
}
var promiseTRRARNOSG = function(counter) {
return new Promise(function(resolve, reject) {
let randomNumberOfSeconds = getRandomNumber(2, 10);
let randomiseResolving = getRandomNumber(1, 10);
console.log("randomise resolving: ", randomiseResolving);
console.log("randomNumberOfSeconds: ", randomNumberOfSeconds);
setTimeout(function() {
if (randomiseResolving > 5) {
resolve({
counter: counter,
randomNumberOfSeconds: randomNumberOfSeconds,
randomiseResolving: randomiseResolving
});
} else {
reject({
counter: counter,
randomNumberOfSeconds: randomNumberOfSeconds,
randomiseResolving: randomiseResolving
});
}
}, randomNumberOfSeconds * 1000);
});
};
// Let us loop through and create ten different promises using the function to see some variation. Some will be resolved and some will be rejected.
async function setup() {
for (i=1; i<=10; i++) {
try {
let promise = await promiseTRRARNOSG(i);
console.log("success " + promise.counter + " " + promise.randomNumberOfSeconds + " " + promise.randomiseResolving);
}
catch(error){
console.error("error " + error.counter + " " + error.randomNumberOfSeconds + " " + error.randomiseResolving);
}
}
}
setup();