你可以使用Promise来封装这个操作,代码如下:

function generateRandomNumber() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const randomNumber = Math.floor(Math.random() * 20) + 1;
      if (randomNumber < 10) {
        reject("Failed: Number is less than 10");
      } else {
        resolve(randomNumber);
      }
    }, 1000);
  });
}

generateRandomNumber()
  .then((randomNumber) => {
    console.log("Success:", randomNumber);
  })
  .catch((error) => {
    console.log(error);
  });

上述代码中,generateRandomNumber函数返回一个Promise对象,其中使用setTimeout延迟1秒执行生成随机数的逻辑。如果生成的随机数小于10,则调用reject方法将Promise标记为失败;反之,调用resolve方法将Promise标记为成功,并传递生成的随机数。

在调用generateRandomNumber函数后,可以使用.then方法来处理成功的情况,使用.catch方法来处理失败的情况。在成功的情况下,随机数将作为参数传递给.then方法,并输出成功的消息。在失败的情况下,错误消息将作为参数传递给.catch方法,并输出失败的消息

用promise返回一个setTimeout方法延迟1秒该setTimeout方法中生成1-20的随机数若数字小于10则视为失败反之则视为成功

原文地址: https://www.cveoy.top/t/topic/hOBI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录