📅  最后修改于: 2023-12-03 14:54:11.216000             🧑  作者: Mango
当我们在处理异步代码时,需要使用一些技术来等待异步操作完成。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
关键字可以让我们的代码更加清晰易懂。同时,我们需要小心处理可能发生的错误,以确保我们的应用程序能够正常运行。