Node.js blocking and non-blocking

什么是blocking?

举个例子

读取一个txt文本到网页。
先创建一个文本吧,起名"input.txt" 文本内容‘hello,world’
node如何读取本地文本?看这里
fs | Node.js API 文档
如下require("fs")表示引进fs模块,就是文件处理模块。并保存到txt变量里。
之后利用readFileSync()函数读取文本,参数就是文件路径。
data.toString()把缓存的数据读出来成文字形式

blocking

var txt = require("fs");

var txt = fs.readFileSync('input.txt'); 

console.log(data.toString()); 
console.log("程序执行结束!");

将上述文件保存为main.js
在终端执行

node main.js

结果是


Hello world!
程序执行结束!

non-blocking

var fs = require("fs");  
fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);     
    console.log(data.toString());
});  
    console.log("程序执行结束!");

同理执行
结果

程序执行结束!
Hello world!

对比

blocking实例在文件读取完后才执行完程序。
nonblocking实例我们不需要等待文件读取完,这样就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,702评论 1赞 37
  • Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScr...
    FTOLsXD阅读 654评论 0赞 2
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,766评论 2赞 41
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    Myselfyan阅读 4,270评论 2赞 58
  • 内容来自《Node.js开发指南》 核心模块是 Node.js 的心脏,它由一些精简而高效的库组成,为 Node....
    angelwgh阅读 1,015评论 0赞 1

友情链接更多精彩内容