nj04---事件回调函数

简介:
一、回调函数
        1.异步式读取文件
                var fs=require('fs');
                fs.readFile('file.txt','utf-8',function(err,data){
                    if(err){
                            console.log(err)
                     }else{
                            console.log(data)
                     }
                });
                console.log('end.')//先打印end,再打印内容
            结果:
                end.
                Contents of the file.
           2. 同步式读取文件
               var fs=require('fs'); 
                var data=fs.readFileSync('file.txt','utf-8');//没有回调函数
                console.log(data)
                console.log('end.')
            结果:
                Contents of the file.
                end.
           3.分析:
                调用时所做的工作知识将异步式IO请求发送给了操作系统,然后立即返回并执行后面的语句,执行完以后进入事件循环监听事件,当fs接受到IO请求完成的事件时。事件循环会主动调用回调函数完成后续工作。同步则是阻塞等待完成后,继续执行。
复制代码

 

复制代码
 二、事件
            1.普通事件的使用
                    //声明事件对象`
                    var EventEmitter=require('events').EventEmitter;
                    var event=new EventEmitter();
                    //注册事件
                     event.on('some_event',function(){
                        console.log('这是一个自定义的事件');
                    });
                    //触发指定的事件
                    setTimeout(function(){
                        event.emit('some_event');
                    },1000);
            2.Node.js的事件循环机制
                (1)Node.js在什么时候进入事件循环呢?
                        答案是Node.js程序是由事件循环开始,到事件循环结束,所有的逻辑都是事件的回调函数。一直循环看有没有没有执行的事件。
                (2)如何使用自定义事件呢?
                        事件的回调函数在执行的过程中,可能会发出IO请求或直接发射(emit)事件,执行完毕后再返回事件循环。
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7012573.html,如需转载请自行联系原作者

相关文章
|
11月前
|
Android开发 iOS开发 容器
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
|
7月前
|
机器学习/深度学习 存储 编解码
YOLOv11改进策略【Neck】| ArXiv 2023,基于U - Net v2中的的高效特征融合模块:SDI(Semantics and Detail Infusion)
YOLOv11改进策略【Neck】| ArXiv 2023,基于U - Net v2中的的高效特征融合模块:SDI(Semantics and Detail Infusion)
314 7
YOLOv11改进策略【Neck】| ArXiv 2023,基于U - Net v2中的的高效特征融合模块:SDI(Semantics and Detail Infusion)
|
8月前
|
机器学习/深度学习 人工智能 算法
Meta-CoT:通过元链式思考增强大型语言模型的推理能力
大型语言模型(LLMs)在处理复杂推理任务时面临挑战,尤其在高级数学和抽象问题解决方面表现不足。为弥补这一差距,研究人员引入了元链式思考(Meta-CoT),该方法通过引入搜索、验证和回溯机制,使LLMs能够模拟人类的系统2思维,实现迭代和审慎推理。实验证明,Meta-CoT显著提升了LLMs在复杂任务中的表现,推动了AI从模式识别向更深层次的逻辑推理转变。
280 16
Meta-CoT:通过元链式思考增强大型语言模型的推理能力
|
9月前
|
机器学习/深度学习 人工智能 算法
探索AI在医疗诊断中的应用与挑战
【10月更文挑战第21天】 本文深入探讨了人工智能(AI)技术在医疗诊断领域的应用现状与面临的挑战,旨在为读者提供一个全面的视角,了解AI如何改变传统医疗模式,以及这一变革过程中所伴随的技术、伦理和法律问题。通过分析AI技术的优势和局限性,本文旨在促进对AI在医疗领域应用的更深层次理解和讨论。
317 31
|
9月前
|
机器学习/深度学习 数据采集 人工智能
《人工智能如何加速药物研发进程:从新药发现到临床试验的突破》
在医药领域,药物研发复杂且成本高昂,新药推出面临诸多挑战。人工智能(AI)通过分析海量生物数据,加速靶点识别、药物分子设计及临床试验设计与数据分析,显著提升研发效率和质量。AI利用机器学习算法和大数据分析,优化试验方案,预测药物疗效与安全性,助力智能化药物研发平台的建设。尽管存在数据质量和隐私等挑战,AI仍为药物研发带来巨大潜力与创新机遇。
426 10
|
10月前
|
机器学习/深度学习 人工智能 安全
元宇宙中的数字身份:重塑社交网络
在科技飞速发展的今天,元宇宙正从科幻概念变为现实。本文探讨了元宇宙中数字身份的重要性、技术基础及其对社交网络的重塑。数字身份作为连接现实与虚拟世界的桥梁,通过分布式数字身份(DID)、区块链和人工智能等技术,不仅增强了社交互动性,拓展了社交边界,还保障了用户的隐私与安全。未来,数字身份将与元宇宙深度融合,为人类带来更加丰富、多元的数字生活体验。
|
5G 调度 云计算
阿里云携手威尔视觉获评“2022年度分布式云与云边协同创新实践案例”
6月14日,由中国信息通信研究院联合中国通信标准化协会共同举办的“2022云边协同大会”以线上方式召开。会上阿里云联合深圳威尔视觉科技有限公司打造的云游戏行业应用实践,经过了自主申报、专家评审、实际调研与考察等环节的层层筛选,最终成功获评“2022年度分布式云与云边协同创新案例”。
891 0
阿里云携手威尔视觉获评“2022年度分布式云与云边协同创新实践案例”
|
安全 5G 网络性能优化
5G NR系统架构
5G网络的频率要比4G网络高,覆盖半径相较4G更小,5G网络基站密度比4G高,使得5G网络建设成本更高。因此NSA非独立组网被纳入考虑,4G与5G联合组网,可以有效减少5G推广压力。
769 0
5G NR系统架构
|
API iOS开发
苹果.tbd格式的文件介绍、生成和使用
早在2015年苹果推出了Xcode7的时候,.tbd文件也随之产生,它的出现取代了我们熟悉的 .dylib。 那么.tbd文件到底是什么呢?有什么用?怎么用?接下来我们一点一点来揭开它的面纱。
苹果.tbd格式的文件介绍、生成和使用