上篇文章我们讲完了类和对象,接下来我们将要说回调函数.

我在第一篇说到nodejs的一个优势是异步IO,实际上异步IO直接体现就是使用回调函数,当然不是用了回调函数,他就一定是异步IO的,因为inodejs是一个单线程函数,主线程在执行的时候,只有发生了异步处理(文件读写、网络请求、定时任务、读取数据库等),js让操作系统相关部件去处理这些请求,另一方面,它会继续执行后面的代码,这才是异步。

回调函数在完成任务后就会被调用,很多Node项目使用了大量的回调函数,Node 所有 API 都支持回调函数。

例如,我们可以一边处理某一个复杂逻辑运算,一边执行其他命令,在复杂逻辑运算完成后,我们将运算结果作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待IO操作。这就大大提高了 Node.js 的性能,可以处理大量的并发请求。

回调函数一般作为函数的最后一个参数出现:

function fun1(param1, param2, callback) { }
function fun2(param, callback1, callback2) { }

阻塞IO代码

代码如下:

var fs=require("fs");
//demo.txt文件内容是 hello world
var data=fs.readFileSync("demo.txt");
console.log(data.toString());
console.log("读文件结束");
var a = 12;
cons

(五)nodejs循序渐进-回调函数和异常处理(基础篇)相关推荐

  1. 在nodejs websocket回调函数中没法用this

    在一个nodejs module顶层把数据保存在this的自定义属性里: 然而在回调函数的上下文里,this发生了变化: 要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  2. http调用如何返回回调函数_Simulink(模型amp;函数调用发生模块)+Guide自写简单系统(五)+StateflowChart回调函数 (二)...

    Simulink:模型&函数调用发生模块 如下所示为模型模块以及函数调用发生模块: 使用模型模块可以双击在模块中选择具体路径中的文件进行配置:在使用时即可对模型提供一个链接的路径: 运行时效果 ...

  3. 将类的成员函数作为回调函数(外一篇:友元函数)

    转自:http://blog.csdn.net/xylary/article/details/1548596 将类成员函数用做C回调函数 提出问题:  回调函数是基于C编程的Windows SDK的技 ...

  4. python中函数的参数_Python小知识-Python中的函数参数(基础篇)

    0 总述 这个题目分为2篇,第一篇基本上是概念以及实例,有个相对系统的认识,第二篇想写的深入一些,不同参数类型的区别以及和c/c++的函数参数对比下异同-下面开始是第一篇的内容啦- Python中的函 ...

  5. ImageDraw()绘图函数《python基础篇》

    引言:最近看了关于源码,里面就有这个函数,开始不懂,然后拖到了现在,发现还是不懂,于是今天索性弄她个干净利索,安排的明明白白. 1.首先就是模块函数的引入. from PIL import Image ...

  6. 深剖函数重载——C++基础篇

    目录 传统艺能

  7. C++回调函数作为通信机制

    回调函数特别适合实现类之间的通信. 类之间的通信, 不同的平台有各自的解决方案, 比如windows有MFC, 这里面就包含大量的回调函数机制, 保证类之间的通信. 这里, 实现一个自定义的回调函数机 ...

  8. Template 基础篇-函数模板

    ====================================================|| 欢迎讨论技术的可以相互加微信:windgs (请备注csdn+xx职业) ======== ...

  9. web前端知识集合——javascript基础篇之javascript背景历史和运行环境(一)

    前言:温故而知新,可以为长也!万变不离其宗,无论是现在web前端技术衍生出多么优秀,好用的框架,插件,都离不开这门语言的基础知识.掌握各种优秀的框架,插件,只是"善用工具的人",深 ...

最新文章

  1. 特征工程在实际业务中的应用!
  2. Linux 环境下的抓包工具 - tcpdump
  3. 一个C#写的调用外部进程类
  4. js调用高德API获取所在当前城市
  5. 单片机STM8S测量电压电路_单片机电路设计中的10个难点
  6. file_operations结构体分析 (设备文件的操作)
  7. GDB调试时,出现value optimized out的解决办法小结
  8. 谷歌更新漏洞披露规则:不管补丁打没打,够90天才披露
  9. 《计算机网络基础》考试大纲
  10. 华为WLAN产品介绍
  11. 02.规划过程组表格-活动成本估算
  12. mysql数据库学习(一)
  13. 【毕设教学】 经典单片机控制算法:PID - 嵌入式 物联网
  14. 批处理的注释:批处理程序中的多行注释方法
  15. 中国软件行进销存管理系统 免费
  16. 加权移动平均法 java_加权平均和移动平均
  17. 爬取豆瓣评论之——后来的我们
  18. 那些年 用过的经典App
  19. 计算机基础与应用演示文稿教案,计算机应用基础讲解教案powerpoint演示文稿.ppt...
  20. android 找不到手机,找不到 Android 开发者选项,难道我的手机系统没有?| 有轻功 #290...

热门文章

  1. Cubieboard2 debian
  2. java jni librtmp_librtmp 编译集成
  3. 判断字段长度大于某长度_判断数据库性能只能通过count(*)?No,这些优化方案了解一下!...
  4. 【转】在ASP.NET Web API 2中使用Owin基于Token令牌的身份验证
  5. mysql数据库连接地址utf8_在Python中连接到MySQL数据库时UTF8不工作
  6. 音视频工程师(初步)(一)音视频的基本概念
  7. SpringCloud:学习 Docker安装Consul,注册服务
  8. REVERSE-PRACTICE-BUUCTF-29
  9. REVERSE-PRACTICE-BUUCTF-24
  10. 【CodeForces - 520C】DNA Alignment (快速幂,思维)