Skip to content

回调函数

一句话解释

回调函数是作为参数传给另一个函数的函数,由接收方在合适的时机(如事件发生、任务完成)“回头调用”。

用大白话说

“回调”就是“回头再调用”的意思。你把一个函数当作参数交给另一个函数,告诉它“等事情办完了,你回头调用我留给你的这个函数”。

function fetchData(callback) {
  // 模拟异步请求数据
  setTimeout(() => {
    callback("数据拿到了");
  }, 1000);
}
fetchData((result) => console.log(result)); // 1 秒后打印“数据拿到了”

回调在异步操作里特别常见:网络请求、定时器、读取文件,这些都需要“等结果出来再做事”。你没法在那里干等,于是留一个回调函数,让系统在结果好了之后自动调用。

回调的缺点是“回调地狱”——多层嵌套的回调会让代码难以阅读。这就是后来 Promise 和 async/await 出现的原因。但理解回调是理解 JS 异步的基础。

示例

javascript
function doLater(callback) {
  console.log("先做我");
  callback();
}
doLater(() => {
  console.log("再做我(回调)");
});

doLater 接收一个函数作为参数,先打印“先做我”,然后调用传入的回调函数,打印“再做我”。这就是回调。

工作原理

  1. 定义一个函数 A
  2. 把 A 作为参数传给另一个函数 B
  3. B 在内部某个时机调用 A
  4. A 此时才真正执行——所以叫“回调”

常见混淆

  • 容易混淆的对象: Promise

    关键区别: 回调是处理异步的早期方式,用函数作参数;Promise 是更现代的方式,用 .then() 链式调用,能更好处理多层异步,避免回调地狱。

相关术语

相关资源

相关课程

学习基础知识

通过结构化课程深入理解这个主题。

查看课程

解读错误信息

用大白话解释常见错误——什么意思、为什么发生、如何修复。

查看错误

← 返回术语表