2026-07-23 11:30:25
async/await 是基于 Promise 的语法糖,用于简化异步操作写法,使代码更接近同步风格,提升可读性和可维护性。其核心用法包括声明异步函数、使用 await 暂停执行、结合 try...catch 处理错误,并通过 Promise.all() 实现并发请求。

示例代码:
async function fetchData() { try { const response = await fetch('async function fetchData() 定义异步函数。
await fetch() 暂停执行,直到请求完成。
await response.json() 解析响应数据。
try...catch 捕获异步操作中的错误,并通过 throw error 将错误传递给调用者。

示例代码:
async function fetchMultipleData() { try { const [data1, data2] = await Promise.all([ fetch('Promise.all() 接收 Promise 数组,并发执行所有请求。
解析结果以数组形式返回,可通过解构赋值获取各请求数据。
任一请求失败时,Promise.all() 直接拒绝,触发 catch 块。

示例代码:
class CustomError extends Error { constructor(message, code) { super(message); this.name = 'CustomError'; this.code = code; }}async function processData() { try { const data = await fetchData(); if (!data) { throw new CustomError('Data is empty', 404); } } catch (error) { if (error instanceof CustomError) { console.error('Custom error:', error.message, error.code); } else { console.error('Unexpected error:', error); } }}4. 循环中的 async/await示例代码:
// 串行执行(不推荐)async function processItemsSerial(items) { for (const item of items) { const result = await processItem(item); // 每次迭代等待完成 console.log('Result:', result); }}// 并行执行(推荐)async function processItemsParallel(items) { try { const results = await Promise.all(items.map(async item => { return await processItem(item); // 并发执行 })); console.log('Results:', results); return results; } catch (error) { console.error('Error processing items:', error); throw error; }}5. 性能考量与优化建议避免不必要的 async 函数(如无 await 时直接使用 Promise)。
对计算密集型任务使用 Web Workers 分流。
减少冗余的 Promise 创建和解析步骤。
总结:async/await 通过同步风格的语法简化了异步编程,但需合理使用以避免性能陷阱。掌握其与 Promise 的关系、并发处理、错误管理及循环优化,能显著提升代码质量和执行效率。