js回调函数例子_c回调函数简单例子

js回调函数例子_c回调函数简单例子回调函数每一个异步任务返回一个Promise对象,该对象有一个then方法,允许指定回调函数

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

回调函数

回调函数是一段可执行的代码段,它作为一个参数传递给其他的代码,其作用是在需要的时候方便调用这段(回调函数)代码

js中函数=对象,对象可以作为参数传给函数。
函数可以作为参数给一个函数,这个参数就是回调函数

使用

例子1

回调函数是异步操作最基本的方法。

下面是两个函数f1和f2,编程的意图是f2必须等到f1执行完成,才能执行。如果f1是异步操作,f2会立即执行,不会等到f1结束再执行。

function f1() { 
   
}

function f2() { 
   
}
f1();
f2();

Jetbrains全家桶1年46,售后保障稳定

改写回调

function f1(callback) { 
   
  callback();
}

function f2() { 
   
}

f1(f2);

例子2

function add(num1, num2, callback){ 
   
	var sum = num1 + num2;
	callback(sum);
}

function print(num){ 
   
	console.log(num);
}

add(1, 2, print);		//=>3

例子3

匿名回调函数

function add(num1, num2, callback){ 
   
	var sum = num1 + num2;
	callback(sum);
}

add(1, 2, function(sum){ 
   
	console.log(sum);		//=>3
});

回调函数优缺点

  • 优点是简单、容易理解和实现
  • 缺点是不利于代码的阅读和维护,各个部分之间高度耦合(coupling),使得程序结构混乱、流程难以追踪(尤其是多个回调函数嵌套的情况),而且每个任务只能指定一个回调函数。

使用场景

  • 异步编程
  • 事件监听、处理
  • setTimeout、setInterval方法

参考链接

https://javascript.ruanyifeng.com/advanced/single-thread.html#toc2
https://www.w3cplus.com/javascript/Sexy-Javascript-understand-the-callback-function-with-the-use-of-Javascript-in.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230917.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 指令字长,机器字长,存储字长的关系_指令字长的概念

    指令字长,机器字长,存储字长的关系_指令字长的概念指令字长、存储字长、机器字长、时钟周期、机器周期、指令周期、取址周期、存取周期的关系考研做题途中遇到这些问题,发现自己掌握的很模糊,遂写下此篇,加深记忆。1、机器字长、存储字长、指令字长机器字长:CPU一次能够处理的数据的位数。通常等于寄存器的位数。例子:windows64位/32位,这里的64位和32位指的就是该操作系统的机器字长。存储字长:计算机存储器中一个存储单元可以存储的位数。例子:某某计算机按照字节编址,即说明该计算机的存储字长为1B=8位。指令字长:计算机内一条指令的位数。这里通常指

    2022年8月31日
    2
  • Unity零基础到入门☀️| 万字教程 讲解Unity中的数据存储 PlayerPrefs、XML、JSON【建议收藏】「建议收藏」

    Unity零基础到入门☀️| 万字教程 讲解Unity中的数据存储 PlayerPrefs、XML、JSON【建议收藏】「建议收藏」本文章是Unity零基础到入门专栏的系列文章。适合对Unity3D引擎感兴趣的小伙伴学习,偏向于新手学习!本篇文章就来介绍一下Unity中三种基本的数据存储方式:PlayerPrefs、XML、JSON

    2022年7月16日
    13
  • Vue3 最长递增子序列详解

    Vue3 最长递增子序列详解Vue3最长递增子序列研究本文初衷彻底讲清楚Vue3源码中实现最长递增子序列的算法。概念名词**最长递增子序列:**在一个给定的数值序列中,找到一个子序列,使得这个子序列元素的数值依次递增,并且这个子序列的长度尽可能地大。最长递增子序列中的元素在原序列中不一定是连续的。比如:序列[10,9,2,5,3,7,101,18]的最长递增子序列是[2,3,7,101]或[2,3,7,18]。序列[3,2,8,9,5,6,7,11,15,4]

    2022年5月4日
    62
  • navicat15永久激活码-激活码分享

    (navicat15永久激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~BI7JCUH1TG-eyJsaWNlbnNlSWQiOi…

    2022年3月22日
    509
  • Idea生成Javadoc

    Idea生成Javadoc

    2022年3月12日
    36
  • c++中sqrt函数的使用

    c++中sqrt函数的使用sqrt使用时大多需要要强制类型转化,因为sqrt只支持double和float类型,可以这样c=(int)sqrt((double)a*a+b*b);或者c=(int)sqrt((float)a*a+b*b);

    2022年5月5日
    146

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号