回调函数

简介: 回调函数

1. setTimeout的一些知识点

setTimeout这个函数我们知道他是异步的,会在我们所指定的延迟时间之后才会执行,举例

console.log("1");
function examPle (){
    setTimeout(function(){
             console.log("2");
        },2000)
    console.log("3");
 }
 examPle();
 console.log("4");

上边的代码先执行 console.log("1"),


然后进入examPle()函数,执行console.log("3"),


然后执行console.log("4"),


最后在2000ms后将 setTimeout()中的函数添加到任务队列中去,执行 console.log("2")。

2.自己对回调函数的认识和回调函数的基本用法

function callBack(callback){

           // let callback = function(data){ console.log(data);}

            setTimeout(function(){

                let value1 = 2020,value2 = 2021;

                callback(value1,value2);

            },2000)

        }

        callBack(function(data){

            console.log(data);

        })

我对回调函数的一个认识,刚开始学的时候感觉有点迷,想不出来这个到底有什么用处


       感觉这样写是多此一举,毫无意义。在学习一段时间,我貌似有点顿悟了(哈哈哈)。


       首先我觉得吧,回调函数在异步中是很重要的,(如果想要获取异步操作的结果,就要用到回调函数)


       比如上边这个例子 callBack中 setTimeout中的这个函数中的变量的值,我们就要用到回调函数,你在callBack函数中是无法获得这个异步操作里边的值


这个异步函数是在callBack函数执行完之后才执行的,所以是不行的。


       比方说,我们要对两个数进行四则运算,我们应该怎么做呢?我们总不会在异步函数中写我们想要进行的步骤吧,


       理论上这样也可以,但是相对于回调函数来说,他还是太复杂了。我们开发讲究的一个原则就是简洁,代码容易理清思路和读懂

下面上四则运算的代码:

(1)加法运算  

callBack(function(data01,data02){
 
         let res = data01 + data02;
         console.log(res);
})

(2)减法运算

callBack(function(data01,data02){
 
         let res = data01 - data02;
         console.log(res);
})

(3)乘法运算

callBack(function(data01,data02){
 
         let res = data01 * data02;
         console.log(res);
})

(4)除法运算

     

callBack(function(data01,data02){
 
         let res = data01 / data02;
         console.log(res);
})

按顺序结果如下:

 

3.回调函数的问题

 1.由于嵌套了太多的回调函数,就会出现一个问题——回调地狱问题


       2.并行执行两个异步操作,当两个结果都结束时通知你


       3.同时进行两个异步操作的结果,只取优先完成的结果


       在以上这些情况下,你需要跟踪多个回调函数并理清这些操作,


promise就很好的解决这些情况(后续归纳关于promise的一些知识点)。

4.总结

对知识的深度了解得不是很深,很多知识只停留在会用的层面上,在接下来的时间里,我会更加努力,使自己变得更加优秀,

让学习成为自己的一种日常习惯。

       希望以上内容对你理解回调函数,异步编程有一丝丝的帮助,谢谢!!!


相关文章
|
1月前
回调函数
回调函数。
7 1
|
1月前
|
人工智能 机器人 中间件
【C++】C++回调函数基本用法(详细讲解)
【C++】C++回调函数基本用法(详细讲解)
|
6月前
|
前端开发 JavaScript 测试技术
理解回调函数
理解回调函数
45 0
|
7月前
【回调函数】
【回调函数】
22 0
|
7月前
|
API C++
回顾C++回调函数
回顾C++回调函数
|
11月前
|
C++
「C/C++」C/C++ 回调函数
「C/C++」C/C++ 回调函数
|
11月前
回调函数实例
回调函数实例
50 0
回调函数是异步吗?回调函数和异步操作的关系
回调函数是异步吗?回调函数和异步操作的关系
|
Java C语言 C++
c++ 回调函数的使用
java的回调函数可能都不陌生,使用接口interface的方式,在接口中定义回调函数。函数参数可以是interfance。调用函数的时候,实现这个interface的函数即可。
169 0
c++ 回调函数的使用