位置: 编程技术 - 正文

我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环(node.js教学)

编辑:rootadmin

推荐整理分享我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环(node.js教学),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js视频教程,node.js入门教程,node.js介绍,node.js视频教程,node.js入门教程,node.js视频教程,node.js基础入门,node. js教程,内容如对您有帮助,希望把文章链接给更多的朋友!

一,node.js的作用,

I/O的意义,(I/O是输入/输出的简写,如:键盘敲入文本,输入,屏幕上看到文本显示输出。鼠标移动,在屏幕上看到鼠标的移动。终端的输入,和看到的输出。等等) node.js想解决的问题,(处理输入,输入,高并发 。如 在线游戏中可能会有上百万个游戏者,则有上百万的输入等等)(node.js适合的范畴:当应用程序需要在网络上发送和接收数据时Node.js最为适合。这可能是第三方的API,联网设备或者浏览器与服务器之间的实时通信) 并发的意义,(并发这个术语描述的是事情会在同时发生并可能相互交互。Node的事件化的I/O模型让我们无需担心互锁和并发这两个在多线程异步I/O中常见的问题) 演示网络I/O

Js代码

命名为,node.js我们在终端里面运行node node.js输出:

我们要求node.js访问三个url并报告收到响应的情况以及所耗费的时间。 我们可以看到两次输出的时间是不一样的。受各种影响,解析DNS请求的时间,服务器繁忙程序等等。 为什么javascript是一个事件驱动的语言javascript围绕着最初与文档对象模型(DOM)相关的事件架构。开发人员可以在事件发生时做事情。这些事件有用户点击一个元素,页面完成加载等。使用事件,开发人员可以编写事件的监听器,当事件发生时被触发。 二,回调(Callback)1,什么是回调2,剖析回调 回调指的是将一个函数作为参数传递给另一个函数,并且通常在第一个函数完成后被调用。 例子:如jquery中的hide()方法,Js代码

回调是可选的,1就不需要回调2,是有回调的,当段落隐藏完成后它就会被调用,显示一个alert提示。 为了可以看到带与不带回调的代码之间的区别Js代码

1,是没有回调,,执行顺序是一样但是,我们可以看到p段落还没有隐藏完全,alert就出来2,是有回调的,执行则是hide完成后在alert 剖析回调Js代码

输出:

这里是创建了一个函数,有三个参数,第三个参数是callback,这个参数必须是个函数。haveBreakfast函数将所吃的东西记录到控制台中然后调用作为参数传递给它的回调函数。 Node.js如何使用回调

node.js中使用filesystem模块从磁盘上读入文件内容的示例 Js代码

结果是:somefile.txt里面的内容。1,fs(filesystem)模块被请求,以便在脚本中使用2,讲文件系统上的文件路径作为第一个参数提供给fs.readFile方法3,第二个参数是utf8,表示文件的编码4,将回调函数作为第三个参数提供给fs.readFile方法5,回调函数的第一个参数是err,用于保存在读取文件时返回的错误6,回调函数的第二参数是打他,用户保存读取文件所返回的数据。7,一旦文件被读取,回调就会被调用8,如果err为真,那么就会抛出错误9,如果err为假,那么来自文件的数据就可以使用,在本例中,数据会记录到控制台上。 再一个,http模块,http模块使得开发人员可以创建http客户端和服务器。

我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环(node.js教学)

Js代码

结果:Got response:,请求http模块,以便在脚本中使用2,给http.get()方法提供两个参数3,第一个参数是选项对象。在本示例中,要求获取shapeshed.com的主页4,第二个参数是一个以响应作为参数的回调函数5,当远程服务器返回相应时,会触发回调函数。6,在回调函数内记录响应状态码,如果有错误的话可以记录下来。 接下来,我们看看有4个不同的I/O操作都在发生,他们都使用回调

Js代码

我们能知道哪个操作先返回吗?猜测就是从磁盘上读取的两个文件先返回,因为无需进入网络,但是我们很难说哪个文件先返回,因为我们不知道文件的大小。对于两个主页的获取,脚本要进入网络,而响应时间则依赖于许多难以预测的事情,Node.js进程在还有已经注册的回调尚未触发之前将不会退出。回调首先解决不可预测性的方法,他也是处理并发(或者说一次做超过一件事情)的高效方法。下面是我执行的结果

同步和异步代码

先看代码,同步(或者阻塞)代码

Js代码

当脚本运行时,fetchPage()函数会被调用,直到它返回之前,脚本的运行是被阻塞的,在fetchPage()函数返回之前,程序是不能移到fetchApi()函数中的。这称为阻塞操作。Node.js几乎从不使用这种编码风格,而是异步地调用回调。看下下面编码,,

Js代码

允许这段代码的时候,就不再等待fetchPage()函数返回了,fetchApi()函数随之立刻被调用。代码通过使用回调,是非阻塞的了。一旦调用了,两个函数都会侦听远程服务器的返回,并以此触发回调函数。注意这些函数的返回顺序是无法保证的,而是和网络有关。 事件循环

Node.js使用javascript的事件循环来支持它所推崇的异步编程风格。基本上,事件循环使得系统可以将回调函数先保存起来,而后当事件在将来发生时再运行。这可以是数据库返回数据,也可以是HTTP请求返回数据。因为回调函数的执行被推迟到事件反生之后,于是就无需停止执行,控制流可以返回到Node运行时的环境,从而让其他事情发生。

Node.js经常被当作是一个网络编程框架,因为它的设计旨在处理网络中数据流的不确定性。促成这样的设计的是事件循环和对回调的使用,他们似的程序员可以编写对网络或I/O事件进行响应的异步代码。

需要遵循的规则有:函数必须快速返回,函数不得阻塞,长时间运行的操作必须移到另一个进程中。Node.js所不适合的地方包括处理大量数据或者长时间运行计算等。Node.js旨在网络中推送数据并瞬间完成。

我的Node.js学习之路(四)--单元测试 通过NPM安装:npminstallnodeunit-g支持命令行,浏览器运行.各种断言。在node.js下模块化对于方法导出exports,如果是对象导出module.exports,模块儿是单元测试

nodejs中使用monk访问mongodb 安装mongodb我觉得还是用mannualinstall靠谱一点儿:

我的NodeJs学习小结(一) 这第一篇就谈谈NodeJs的一些编程细节吧。1、遍历数组for(vari=0,l=arr.length;il;i++)这样写的一个好处就是让每次循环少一步获取数组对象长度的操作,数组长

标签: node.js教学

本文链接地址:https://www.jiuchutong.com/biancheng/374156.html 转载请保留说明!

上一篇:我的Node.js学习之路(二)NPM模块管理(node.js介绍)

下一篇:我的Node.js学习之路(四)--单元测试(node.js视频教程)

  • 房屋租赁服务增值税税率是多少
  • 2023小规模纳税人所得税税收优惠政策
  • 收到待报解预算收入怎么查退的什么税
  • 诚信纳税的含义是什么
  • 先开票,后发货怎么处理
  • 不动产租赁服务属于现代服务吗
  • 企业里面不征税的发票能报销吗
  • 滴滴发票抬头怎么填
  • 小规模季度申报怎么申报
  • 一般购销业务的账务处理
  • 公益性捐赠税前扣除资格认定
  • 公司分期付款买车可以抵税吗
  • 供应商转让合同
  • 特别纳税调整后 需要更正申报吗
  • 普通股股本属于什么科目
  • 收回过去已确认的坏账
  • 出口押汇与打包押汇区别
  • 存货周转天数一般在多少为合适
  • 如何理解出口退税政策
  • 所得税费用为负数需要体现在报表上吗
  • 税收分类编码怎么导出来
  • 建筑工程安装合同
  • 个人购买办公楼出租要交税吗
  • 个体不超过10万怎么交税
  • 购买方红字信息表开具流程图
  • 事业单位材料费分析怎么写
  • 个人承担的社保费用算在员工工资里吗?
  • 环评费用计入哪个会计科目
  • 普通增值税发票跨越可以作废吗
  • 捷波主板141m
  • 通过email发送歌曲放哪?
  • 其他应收款核算内容
  • 莫纳皮拉
  • 灰狼算法的改进
  • 二级路由器怎么配置
  • 企业怎么知道增值税的核定方法
  • 专家评审费可以由中标人支付吗
  • 政府基金如何开立账户
  • 分配结转制造费用时借方科目?
  • 富文本编辑器和markdown编辑器的区别
  • redux reducer使用教程
  • 房地产企业预缴增值税如何申报
  • 制造费用的归集
  • yolov5画框重复、大框包小框问题解决,c++、python代码调用onnx
  • admit允许
  • 个人应纳所得税计算公式
  • 纳税人兼营不同税率
  • 摊位出租税率
  • 业务预算包括直销费用吗
  • 进项未认证但已开票怎么办
  • 土地增值税预缴计算方法70号公告
  • 进项税为什么记在贷方
  • 金蝶软件修改凭证
  • sql server数据
  • 成立业主委员会申请书
  • 工会会计固定基金
  • 主营业务成本是借增贷减吗
  • 高新技术企业核心人才保险
  • 小规模纳税人记账报税流程
  • 成本类科目在哪里列式
  • 建筑业有收入没有成本
  • 更换账簿需要注意哪些问题
  • 会计科目的设置原则包括( )
  • win2008 R2 与SP1 PS2无法安装操作系统补丁的解决办法
  • mac的qq缓存在哪里怎么打开
  • linux使用su命令出错
  • xp系统里的打印机怎么设置的和新7
  • created directory cfg怎么办
  • windows7版本支持功能最少的
  • centos7 ifcfg-lo
  • win8系统恢复
  • linux命令csdn
  • js如何使用
  • 微软官方app
  • JavaScript中的case
  • shell eval用法
  • 关于草丛:单局游戏内
  • 国家财政税务局
  • 江苏地税个税申报时间表
  • 浙江省国家税务局总局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设