js基础 回调函数

回调函数

什么是回调函数呢?其实就是将函数a作为函数b的参数来使用,这就是回调函数,也就是先执行函数a,完事儿后执行函数b。下面就是一个简单的回调函数例子,在函数a里面调用函数b,执行完函数a然后执行函数b,也就是先弹出111,再弹出222。

function a(cb,a){
    alert('111');
    cb(a);//这里是将回调函数的参数作为与回调函数同等级的参数进行传递,就是函数b里面的参数e和函数a里面的参数a是一样的。
}
function b(e){
    alert(e);
}
a(b,"222");

//也可以这么写,看个人喜好
function a(a,cb){//a('111',function(e){alert(e);})   '111' => a; function(e){alert(e) => cb。
    alert(a);
    var zhi = "222";
    cb(zhi);
}
a('111',function(e){//cb(zhi) => cb(e)
    alert(e);
})

我们在上面说到先执行完函数a然后执行函数b,这么理解也对,我们看下面的代码。

function a(cb,e){
    cb(e);//我们可以看到回调函数是排在队列前的
    alert("one");//我们的主函数排在回调函数后面
}
function b(e){
    alert(e)
}
a(b,'two');//执行后回依次弹出 two 和  one 。

/*注意:上下两段注释一个 分开看*/

function a(cb,e){
    cb(e);//我们可以看到回调函数是排在队列前的
    alert("one");//我们的主函数排在回调函数后面
}
function b(e){
    setTimeout(function(){//这里模拟一下耗费时间的操作
    alert(e)
},2000)
}
a(b,'two');//执行后回依次弹出 one 和  two 。

/*上面代码基本一样,但是执行的顺序却不一样,我们要知道js是单线程的,所以执行代码都是一行一行的在

队列中执行,如果在队列中有一个需要时间很长才能执行完,那下面的也都跟着等待,而这时我们用回调函数就

不用非得排队执行了。所以在第二段代码会先执行函数函数a(主函数),而不用等函数b(回调函数)执行完再执行。*/

如果上面说的不明白的话,可以这么理解,js会按照队列中的代码运行(从上到下),当回调函数执行时间太长的时候,主函数也可以接着向下执行队列中的代码。所以一般回调函数都用在耗时操作上面。比如ajax请求,比如处理文件等。

有哪里不对的地方,希望各路大神帮忙指点一下!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Node.js 中,回调函数是一种常见的异步编程模式。回调函数是在另一个函数执行完毕后调用的函数,用于处理函数的返回值或错误信息。回调函数通常作为函数的最后一个参数传递,例如: ```javascript function doSomething(input, callback) { // 执行一些操作,最终调用 callback 函数 callback(error, result); } ``` 在上面的代码中,`doSomething` 函数接收两个参数:`input` 和 `callback`。`callback` 参数是一个函数,用于处理 `doSomething` 函数执行的结果。在 `doSomething` 函数内部,可以执行任何需要异步处理的操作,例如读取文件、发送网络请求、查询数据库等。当操作完成后,调用 `callback` 函数,将结果传递给 `callback` 函数。 以下是一个使用回调函数的示例代码: ```javascript const fs = require('fs'); function readTextFile(filename, callback) { fs.readFile(filename, 'utf8', (error, data) => { if (error) { callback(error); } else { callback(null, data); } }); } readTextFile('example.txt', (error, data) => { if (error) { console.error(error); } else { console.log(data); } }); ``` 在上面的代码中,`readTextFile` 函数读取一个文本文件,并将文件内容通过回调函数传递给调用方。当读取文件完成后,`readTextFile` 函数调用回调函数,将文件内容作为第二个参数传递给回调函数。如果读取文件出错,`readTextFile` 函数将错误信息作为第一个参数传递给回调函数。 调用方可以通过传递一个回调函数来获取文件内容或错误信息。在上面的代码中,当文件读取完成后,调用方的回调函数会被执行,将文件内容打印到控制台上。如果读取文件出错,调用方的回调函数会打印错误信息到控制台上。 回调函数是 Node.js 中异步编程的基础,但是过多的回调函数可能导致代码难以维护。因此,在 Node.js 中还有其他的异步编程模式,例如 Promise 和 async/await。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值