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();