当前位置: 首页 > news >正文

什么是「回调函数」 Callback Function ?

我们用一个生活中最常见的例子来通俗地解释回调函数 (Callback Function)

想象一下你去一家很火的餐厅点餐。


场景:点一杯奶茶

  1. 你(主程序):走到柜台,对服务员说:“我想要一杯珍珠奶茶。”
  2. 服务员(一个需要花时间的函数,比如 makeTea:对你说:“好的,但是现在人多,做奶茶需要5分钟。您不能一直站在这里干等。”
  3. 服务员接着说:“这样吧,您把您的手机号告诉我。奶茶做好了,我打电话通知您。”

在这个场景里:

  • “打电话通知您” 这个动作,就是 回调 (Callback)
  • 你留下的**“手机号”**,就是 回调函数 (Callback Function)

拆解一下这个过程:

  • 你把“手机号”交给了服务员:这对应着,你把一个函数 (Callback Function) 作为参数传递给了另一个函数 (makeTea 函数)。
  • 你去做别的事了:你不用傻等,可以去逛逛街、玩玩手机。这对应着,你的主程序不会被卡住(阻塞),可以继续执行其他代码。这就是异步
  • 奶茶做好了(事件发生):服务员完成了他的任务。
  • 服务员拨打你的手机号(执行回调)makeTea 函数在它自己的任务完成后,回过头来调用了你当初留给它的那个函数(你的“手机号”)。
  • 你接电话(回调函数里的代码被执行):你收到通知,然后说:“好的,我马上过来取!”。这个“过来取”的动作,就是定义在回调函数内部的逻辑。

总结成一句话定义:

一个回调函数,就是你传递给另一个函数A的“B函数”,并告诉A:“你先忙你自己的事,等你忙完了,再回过头来调用我给你的这个B函数。”

为什么需要它?

主要用于两种情况:

  1. 处理耗时操作(异步编程)
    • 比如:网络请求、读取文件、定时器。程序不能一直等着这些操作完成,所以就先注册一个回调函数,告诉程序“等你完成了再叫我”。
  2. 让代码更灵活(事件处理)
    • 比如:你给一个按钮添加点击事件。
    • button.onClick( function() { alert('你点我了!'); } )
    • 这里 function() { ... } 就是一个回调函数。你把它交给了 onClick 方法,并告诉它:“我不知道用户什么时候会点击,但一旦用户点击了,你就帮我执行这个函数。”

简单来说,回调就是一种“你先忙,忙完叫我”的编程模式。

http://www.dtcms.com/a/318610.html

相关文章:

  • Linux(17)——Linux进程信号(上)
  • 28.(vue3.x+vite)el-pagination中文设置(兼容其他elementPlus组件)
  • PaddleOCR 多线程并发问题
  • K8S命令记录
  • 利用多线程设计群ping工具
  • 5G随身WiFi怎么选?实测延迟/网速/续航,中兴V50适合商务,格行MT700适合短租、户外党~避坑指南+适用场景全解析
  • 无监督学习之K-means算法
  • 古多倍体化对被子植物适应性进化的遗传贡献--文献精度154
  • 本地部署 SQLite 数据库管理工具 SQLite Browser ( Web ) 并实现外部访问
  • 根据经纬度(从nc格式环境数据文件中)提取环境因子
  • RabbitMQ面试精讲 Day 12:镜像队列与Quorum队列对比
  • PCL 平面特征点提取
  • 2 SpringBoot项目对接单点登录说明
  • C语言控制语句练习题3
  • 数据结构与算法
  • 嵌入式 - 数据结构:栈和队列
  • [Oracle] ROUND()函数
  • 软件架构:系统结构的顶层设计与战略约束
  • 【前端】Vite中import.meta功能详解
  • 【多模态微调】【从0开始】Qwen2-VL + llamafactory
  • 小杰python高级(one day)——numpy库
  • 应急响应-windows篇
  • Spring选择哪种方式代理?
  • 12、Docker Compose 安装 Redis
  • CGAL Kernel 和 Traits 类深度解析:从官方教程到实践应用
  • 疯狂星期四文案网第30天运营日记
  • 从Token到序列:阿里GSPO算法如何让大模型训练更稳、更强?
  • CubeFS存储(一)
  • 16-DS18B20-±0.5℃精度-12bitADC--55°C ~ +125°C
  • ubuntu server 工业环境部署手册[2025-08-06]