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

【C语言干货】回调函数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、回调函数的基本概念
  • 二、回调函数的常见应用场景
  • 总结


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、回调函数的基本概念

1. 什么是回调函数?

回调函数(Callback Function)是指作为参数传递给另一个函数的函数,并在特定条件满足或事件发生时被调用执行的函数。回调函数允许我们在异步操作完成后执行特定代码。

2. 回调函数的特点

  • 函数作为参数:回调函数本质上是作为参数传递的函数

  • 延迟执行:回调函数不会立即执行,而是在特定条件满足时被调用

  • 控制反转:主函数控制何时调用回调函数

  • 灵活性:可以动态改变程序行为

3. 简单示例

// 定义一个接收回调函数的函数
function greet(name, callback) {console.log(`Hello, ${name}!`);callback(); // 调用回调函数
}// 定义回调函数
function sayGoodbye() {console.log('Goodbye!');
}// 使用回调
greet('Alice', sayGoodbye);/*
输出:
Hello, Alice!
Goodbye!
*/

二、回调函数的常见应用场景

1. 事件处理

javascript

复制

下载

// DOM事件回调
document.getElementById('myButton').addEventListener('click', function() {console.log('Button clicked!');
});

2. 定时器

javascript

复制

下载

// setTimeout回调
setTimeout(function() {console.log('This runs after 1 second');
}, 1000);

3. 网络请求

javascript

复制

下载

// 传统XMLHttpRequest回调
function fetchData(url, successCallback, errorCallback) {const xhr = new XMLHttpRequest();xhr.open('GET', url);xhr.onload = function() {if (xhr.status === 200) {successCallback(xhr.response);} else {errorCallback(new Error(xhr.statusText));}};xhr.onerror = function() {errorCallback(new Error('Network Error'));};xhr.send();
}

4. Node.js中的I/O操作

javascript

复制

下载

// Node.js文件读取回调
const fs = require('fs');fs.readFile('example.txt', 'utf8', function(err, data) {if (err) {console.error('Error:', err);return;}console.log('File content:', data);
});


http://www.xdnf.cn/news/682003.html

相关文章:

  • endnote2025安装教程以及激活文件
  • ELectron 中 BrowserView 如何进行实时定位和尺寸调整
  • Asp.Net Core 如何配置在Swagger中带JWT报文头
  • leetcode hot100刷题日记——21.不同路径
  • 六、西方哲学
  • 【连载19】基础智能体的进展与挑战综述-对智能体大脑的威胁
  • halcon高斯滤波
  • 网络编程--上篇
  • 【详细记录】我的第一次裸片硬件尝试:stm32f103c8t6最小核心板一板成
  • unet 视频截图 实现简单的unet kaggle运行
  • Kruskal-Wallis检验 vs. 多次Wilcoxon检验:多重比较-spss
  • LCR 094. 分割回文串 II
  • Elasticsearch搜索机制与分页优化策略
  • Pytest自动化测试框架搭建:Jenkins持续集成
  • 通俗解释网络参数RTT(往返时间)
  • Scratch节日 | 六一儿童节
  • 并发编程(二)—synchronized和volatile
  • 尚硅谷redis7 55-57 redis主从复制之理论简介
  • 从零搭建上门做饭平台:高并发订单系统设计
  • 普罗米修斯监控CPU\内存汇聚图
  • 产业集群间的专利合作关系
  • Visual Studio编译当前文件
  • vue项目 build时@vue-office/docx报错
  • ceph recovery 相关参数
  • MMdetection推理验证输出详解(单张图片demo)
  • 用DEEPSEEK写的扫雷小游戏
  • 如何设计高效的索引策略?
  • 一则doris数据不一致问题
  • Day38 Python打卡训练营
  • Python+OpenCV实战:高效实现车牌自动识别