我的理解:
所谓回调函数、事件,它的实质都是这样:
举例:io流的open函数,它提供了一个opened事件,或者说是回调函数,它的作用是open函数执行完才发生这个事件,那么它的底层(open函数内部)一定是这样的:
open(options)
{
...............//这里是底层真正实现打开文件的代码
opened();//事件,也可以说是回调函数(在C#中,通过委托来实现;在js的回调函数中,通过将函数作为另一个函数的参数来实现)
}
如果是回调函数
open(options,callbacks)
{
...............//这里是底层真正实现打开文件的代码
callbacks();//事件,也可以说是回调函数(在C#中,通过委托来实现;在js的回调函数中,通过将函数作为另一个函数的参数来实现)
}
实际调用时:
var fs=require('fs');
fs.open('xx.txt',function(){
console.log("完成");
});
那么open函数执行时
open('xx.txt',function(){
console.log("完成");
})
{
.........//这里是底层真正实现打开xx.txt文件的代码
function(){
console.log("完成");
}
你懂了么?反正我懂了(不过也可能我理解的不对,如果我错了,请大家批评指正)
本文通过文件I/O操作的例子详细解析了回调函数和事件的工作原理。重点介绍了如何使用回调函数来处理异步任务,以及在不同编程语言如C#和JavaScript中如何实现这一机制。
1万+

被折叠的 条评论
为什么被折叠?



