前端 JavaScript 进阶面试题, asyncawait 如何捕获异常?
前端 JavaScript 进阶面试题, asyncawait 如何捕获异常?
QA
Step 1
Q:: async/
await 如何捕获异常?
A:: 在使用 async/await 时,异常可以通过 try/
catch 语句来捕获。示例如下:
async function fetchData() {
try {
let response = await fetch('https://api.example.com/data');
let data = await response.json();
console.log(data);
} catch (error) {
console.error('Error fetching data:', error);
}
}
fetchData();
在这个例子中,任何在 await 表达式中抛出的异常都会被 catch 块捕获。
Step 2
Q:: 为什么 async/
await 比回调函数和 Promise 更好?
A:: async/
await 比回调函数和 Promise 更好主要有以下几个原因:
1. 可读性强:async/
await 让代码看起来更像同步代码,使得逻辑更容易理解。
2. 错误处理更简单:可以使用 try/catch 捕获异常,而不需要链式的 .catch()
方法。
3.
调试方便:调试器可以逐行调试 async 函数,像同步代码一样设置断点。
Step 3
Q:: 你如何处理多个 async/
await 请求?
A:: 可以使用 Promise.all 并行处理多个 async/
await 请求:
async function fetchMultipleData() {
try {
let [data1, data2] = await Promise.all([
fetch('https://api.example.com/data1').then(res => res.json()),
fetch('https://api.example.com/data2').then(res => res.json())
]);
console.log(data1, data2);
} catch (error) {
console.error('Error fetching data:', error);
}
}
fetchMultipleData();
在这个例子中,两个异步请求并行执行,只有当两个请求都完成时才继续执行后续代码。
用途
了解和掌握 async`/await 是前端开发中的重要技能,特别是在处理异步操作时。它们简化了异步代码的写法,提高了代码的可读性和可维护性。实际生产环境中,async/`await 常用于数据请求、文件读取和定时任务等需要异步处理的场景。\n相关问题
🦆
什么是 JavaScript 异步编程?▷
🦆
解释 Promise 的工作原理.▷
🦆
回调地狱是什么,如何避免?▷