JavaScript 异步编程基础

← 返回笔记列表

JavaScript 异步 Promise

JavaScript 是单线程语言,异步编程是处理耗时操作(如网络请求、定时器)的关键。本文梳理了从回调到 async/await 的演变过程。

一、回调函数 (Callback)

最早的异步解决方案,但容易导致"回调地狱",代码难以维护。

getData(function(a) {
  getMoreData(a, function(b) {
      getMoreData(b, function(c) {
          console.log(c);
      });
  });
});

二、Promise 对象

Promise 是异步编程的一种解决方案,代表一个未来才会结束的操作及其结果。

fetch('/api/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

Promise 有三种状态:Pending(进行中)、Fulfilled(已成功)和 Rejected(已失败)。

三、async/await

ES2017 引入的语法糖,让异步代码看起来像同步代码,可读性更强。

async function getData() {
  try {
      const response = await fetch('/api/data');
      const data = await response.json();
      console.log(data);
  } catch (error) {
      console.error(error);
  }
}
getData();

四、事件循环 (Event Loop)

理解异步编程必须理解事件循环机制。JS 引擎会先将同步任务执行完毕,再去任务队列中读取异步任务。

💡 最佳实践: 在现代开发中,推荐优先使用 async/await 处理异步逻辑,配合 try/catch 进行错误处理。

五、学习心得

异步编程是 JavaScript 的难点也是重点。通过实际项目中的接口调用练习,我逐渐理解了 Promise 链式调用和 async/await 的区别。

六、后续计划

免责声明: 本文内容为个人学习笔记,仅供参考学习使用。如有错误或不足,欢迎指正。