JS回调函数 callback的理解与使用案例分析


Posted in Javascript onSeptember 09, 2019

本文实例讲述了JS回调函数 callback的理解与使用。分享给大家供大家参考,具体如下:

基本理解一个概念

回调函数回头再调用函数,等主干事情干完了,再回头干分支上的事情。

官方定义

A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.

实例1

//定义主函数,回调函数作为参数
function A(callback) {
  callback();
  console.log('我是主函数');
}
//定义回调函数
function B(){
  setTimeout("console.log('我是回调函数')", 3000);//模仿耗时操作
}
//调用主函数,将函数B传进去
A(B);

输出结果:

我是主函数
我是回调函数

实例2

function a() {
  console.log("执行a函数");
  setTimeout(function(){
      console.log("执行a函数的延迟函数");
  },1000);
  function b() {
    console.log("执行函数b");
  );
  a();
  b();
};

输出结果

以上代码会先执行函数a,而且不会等到a中的延迟函数执行完才执行函数b, 在延迟函数被触发的过程中就执行了函数b,当js引擎的event 队列空闲时才会去执行队列里等待的setTimeout的回调函数,这就是一个异步的例子

调用 setTimeout 函数会在一个时间段过去后在队列中添加一个消息。这个时间段作为函数的第二个参数被传入。如果队列中没有其它消息,消息会被马上处理。但是,如果有其它消息,setTimeout 消息必须等待其它消息处理完。因此第二个参数仅仅表示最少的时间 而非确切的时间

所以即使,时间设置为0,也是会照样先执行函数b

结语

回调函数广泛运用在同步(sync)和异步(async)

常见的:

还需要深挖:js单线程和js异步

浏览器常驻三大线程: js引擎线程,GUI渲染线程,浏览器事件触发线程

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
Oct 22 Javascript
9行javascript代码获取QQ群成员具体实现
Oct 16 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
Apr 30 Javascript
jquery转盘抽奖功能实现
Nov 13 Javascript
javascript中使用未定义变量或值的情况分析
Jul 19 Javascript
原生JS实现图片轮播与淡入效果的简单实例
Aug 21 Javascript
node.js版本管理工具n无效的原理和解决方法
Nov 24 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
Mar 31 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
Sep 01 Javascript
vue 实现数字滚动增加效果的实例代码
Jul 06 Javascript
实现elementUI表单的全局验证的方法步骤
Apr 29 Javascript
世界上最短的数字判断js代码
Sep 09 #Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 #Javascript
javascript删除数组元素的七个方法示例
Sep 09 #Javascript
微信小程序 select 下拉框组件功能
Sep 09 #Javascript
移动端手指操控左右滑动的菜单
Sep 08 #Javascript
swiper Scrollbar滚动条组件详解
Sep 08 #Javascript
js实现移动端tab切换时下划线滑动效果
Sep 08 #Javascript
You might like
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
类之Prototype.js学习
2007/06/13 Javascript
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
JQuery与iframe交互实现代码
2009/12/24 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
2013/07/04 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
Python兔子毒药问题实例分析
2015/03/05 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
python定义类的简单用法
2020/07/24 Python
详解Scrapy Redis入门实战
2020/11/18 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
总经理秘书工作职责
2013/12/26 职场文书
酒店总经理欢迎词
2014/01/08 职场文书
机电专业大学生职业规划书范文
2014/02/25 职场文书
人力资源主管职责范本
2014/03/05 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
签订劳动合同通知书
2015/04/16 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers