Problem
function getNumber() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const randomNumber = Math.random();
      if (randomNumber > 0.5) {
        resolve(randomNumber);
      } else {
        reject("Number is too low");
      }
    }, 1000);
  });
}

async function printNumber() {
  const number = await getNumber();
  console.log("The number is:", number);
}

printNumber();
Solution

The printNumber function is not handling the promise rejection. To fix this, you can add a try/catch block around the await statement:

function getNumber() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const randomNumber = Math.random();
      if (randomNumber > 0.5) {
        resolve(randomNumber);
      } else {
        reject("Number is too low");
      }
    }, 1000);
  });
}

async function printNumber() {
  try {
    const number = await getNumber();
    console.log("The number is:", number);
  } catch (error) {
    console.log("Whoops:", error);
  }
}

printNumber();