📜  异步等待捕获错误 - Javascript (1)

📅  最后修改于: 2023-12-03 14:54:11.216000             🧑  作者: Mango

异步等待捕获错误 - JavaScript

当我们在处理异步代码时,需要使用一些技术来等待异步操作完成。JavaScript 提供了 async/await 关键字来等待异步操作完成。同时,我们也需要捕获可能发生的错误,否则我们的应用程序可能会崩溃。

async/await 基本语法

async/await 提供了一种更加优雅和简洁的处理异步代码的方式。在使用 async/await 关键字时,我们需要根据下面的基本语法来使用。

async function myFunction() {
  try {
    const result = await myAsyncTask();
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}

async function myAsyncTask() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const randomNumber = Math.floor(Math.random() * 10);
      if (randomNumber % 2 === 0) {
        resolve(`Random number is ${randomNumber}.`);
      } else {
        reject(new Error('Failed to generate random number.'));
      }
    }, 1000);
  });
}

在上面的代码中,我们定义了两个异步函数。myAsyncTask() 返回一个 Promise 对象,在一个随机时间内生成一个随机数。如果随机数为偶数,则成功完成任务。否则,它会抛出一个 Error 对象表示任务失败。

myFunction() 是另一个异步函数,我们将在其中调用 myAsyncTask()。我们在函数中使用了 async/await 关键字来等待异步操作完成。如果操作成功,则在控制台输出生成的随机数。否则,我们捕获错误并在控制台输出错误消息。

错误处理

在异步代码中,我们要小心处理错误,否则我们的应用程序可能会崩溃。使用 try/catch 块来捕获可能发生的错误是一种良好的实践。

try {
  // 异步操作
} catch (error) {
  // 处理错误
}

注意:try/catch 块只能捕获到当前函数执行的错误。如果错误在函数调用栈中的另一个上下文中发生,我们需要在该上下文中进行错误处理。

结论

在处理异步代码时,使用 async/await 关键字可以让我们的代码更加清晰易懂。同时,我们需要小心处理可能发生的错误,以确保我们的应用程序能够正常运行。