博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js:回调函数
阅读量:6266 次
发布时间:2019-06-22

本文共 878 字,大约阅读时间需要 2 分钟。

概要本篇博客主要通过对比node.js异步与同步方式读取文件的方式来解释node中回调函数的作用。

1.异步方式读取文件

新建一个文本文档用于测试,如下图:

代码如下:

// node异步方式读取文件var fs = require('fs');fs.readFile('input.txt','utf-8',function(err,data){    if (err) {        console.error(err);    } else {        console.log(data);    }});console.log('end');

执行结果如下:

2.node也提供了同步读取文件的API -- readFileSync(path, options):

用上述文本文档测试,代码如下:

// node同步方式读取文件var fs = require('fs');var data = fs.readFileSync('input.txt', 'utf-8');console.log(data);console.log('end.');

执行结果如下:

  对比发现,运行结果不同。  

  同步式读取文件的方式比较容易理解,将文件名作为参数传入fs.readFileSync 函数,阻塞等待读取完成后,将文件的内容作为函数的返回值赋给data变量,接下来控制台输出data的值,最后输出end。

  异步式读取文件是通过回调函数来实现的。fs.readFile 接收了三个参数:第一个是文件名,第二个是编码方式,第三个是一个函数,即回调函数。fs.readFile 调用时所做的工作只是将异步式I/O请求发送给了操作系统,然后立即返回并执行后面的语句,执行完以后进入事件循环监听事件。当fs 接收到I/O请求完成的事件时,事件循环会主动调用回调函数完成后续工作。因此我们会先看到end.,再看到input.txt文件的内容。

转载于:https://www.cnblogs.com/koto/p/5692261.html

你可能感兴趣的文章
复杂SQL性能优化的剖析(一)(r11笔记第36天)
查看>>
19.2. /etc/shells
查看>>
实用的Linux命令行技巧
查看>>
深入理解学习Git工作流(转)
查看>>
oss php sdk+laravel搭建图片处理静态网站
查看>>
深入理解Tomcat系列之二:源码调试环境搭建(转)
查看>>
thinkphp学习笔记6—url模式
查看>>
像npm一样在Andriod项目中引入Gradle依赖
查看>>
智慧城市建设掀起热潮 潜在市场规模高达20万亿
查看>>
【SSH系列】hibernate映射 -- 一对一双向关联映射
查看>>
windows添加snmpd
查看>>
2017MMC智慧出行体验周 Mobile & Mobility Connectivity 2017
查看>>
那年不“匆匆”---我的2014年总结
查看>>
如何搭建企业的「大数据视野」? 五个步骤帮你搞定
查看>>
CentOS 7 systemd的坑
查看>>
阿里云 CDN HTTPS 最佳实践——动态密钥套件
查看>>
Converting Between YUV and RGB
查看>>
浅谈大数据:如何成为大数据企业?
查看>>
多国语言字符串的加密、全文检索、模糊查询的支持
查看>>
大数据中心在医院的落地,需如何去做集成融合与利用
查看>>