什么是异步编程?
在JavaScript中,异步编程是处理长时间操作(如网络请求、文件读写)的核心机制,通过避免阻塞主线程提升性能。
使用async/await
和Promise
可以让代码更清晰,像同步一样编写异步逻辑。
📌 关键点:
- 非阻塞特性
- 回调函数与事件循环
- 异步操作的并发处理
常见异步模式
1. 回调函数
最原始的方式,但容易导致回调地狱(Callback Hell)
doSomething(function(result) {
doAnotherThing(result, function(finalResult) {
// ...
});
});
2. Promise
现代异步处理的基础,支持.then()
和.catch()
fetchData()
.then(data => processData(data))
.catch(error => console.error(error));
3. async/await
更简洁的写法,基于Promise的语法糖
async function main() {
try {
const data = await fetchData();
const result = await processData(data);
console.log(result);
} catch (error) {
console.error(error);
}
}
异步编程实践
事件循环(Event Loop)
JavaScript通过事件循环机制处理异步任务,如图所示:
异步函数与并发
使用Promise.all()
处理多个异步操作:
const [result1, result2] = await Promise.all([fetchData1(), fetchData2()]);
错误处理
- 使用
.catch()
捕获链式调用中的错误 try/catch
在async
函数中更直观