异步编程
什么是异步编程?
异步编程是指程序在执行某些耗时操作(如网络请求、文件读取)时,不会阻塞后续代码的执行,而是让这些操作在后台运行,完成后通过回调函数通知结果。
为什么需要异步?
- 避免阻塞主线程,保持用户界面响应
- 提高程序执行效率
- 处理I/O密集型任务(网络请求、文件操作等)
主要异步模式
1. 回调函数(Callback)
2. Promise
3. async/await
// 使用 async/await 简化异步代码
async function fetchData() {
try {
const response = await fetch('/api/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
// 调用异步函数
fetchData();
常用异步函数
// setTimeout/setInterval
setTimeout(() => console.log('执行'), 1000);
// Promise 相关
Promise.all([promise1, promise2]) // 并行执行
Promise.race([promise1, promise2]) // 竞速执行
// 现代异步 API
fetch('/api/data'); // 网络请求
navigator.geolocation.getCurrentPosition(); // 获取位置
最佳实践
- 优先使用 async/await 使代码更易读
- 始终处理 Promise 的错误情况
- 避免回调地狱,使用 Promise 或 async/await
- 注意并发控制,避免过多并行请求
异步编程是 JavaScript 的核心概念,掌握它能让你更好地处理复杂的应用逻辑。