node阻塞和非阻塞

阻塞代码实例
创建一个文件 input.txt ,内容如下:

菜鸟教程官网地址:www.runoob.com
创建 main.js 文件, 代码如下:

var fs = require(“fs”);

var data = fs.readFileSync(‘input.txt’);

console.log(data.toString());
console.log(“程序执行结束!”);
以上代码执行结果如下:

$ node main.js
菜鸟教程官网地址:www.runoob.com

程序执行结束!
Node.js 教程
Node.js 教程
Node.js 安装配置
Node.js 创建第一个应用
NPM 使用介绍
Node.js REPL
Node.js 回调函数
Node.js 事件循环
Node.js EventEmitter
Node.js Buffer
Node.js Stream
Node.js 模块系统
Node.js 函数
Node.js 路由
Node.js 全局对象
Node.js 常用工具
Node.js 文件系统
Node.js GET/POST请求
Node.js 工具模块
Node.js Web 模块
Node.js Express 框架
Node.js RESTful API
Node.js 多进程
Node.js JXcore 打包
Node.js MySQL
Node.js MongoDB
Node.js REPL(交互式解释器)Node.js 事件循环
Node.js 回调函数
Node.js 异步编程的直接体现就是回调。

异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。

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

例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js 的性能,可以处理大量的并发请求。

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

function foo1(name, age, callback) { }
function foo2(value, callback1, callback2) { }
阻塞代码实例
创建一个文件 input.txt ,内容如下:

菜鸟教程官网地址:www.runoob.com
创建 main.js 文件, 代码如下:

var fs = require(“fs”);

var data = fs.readFileSync(‘input.txt’);

console.log(data.toString());
console.log(“程序执行结束!”);
以上代码执行结果如下:

$ node main.js
菜鸟教程官网地址:www.runoob.com

程序执行结束!
非阻塞代码实例
创建一个文件 input.txt ,内容如下:

菜鸟教程官网地址:www.runoob.com
创建 main.js 文件, 代码如下:

var fs = require(“fs”);

fs.readFile(‘input.txt’, function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});

console.log(“程序执行结束!”);
以上代码执行结果如下:

$ node main.js
程序执行结束!
菜鸟教程官网地址:www.runoob.com
以上两个实例我们了解了阻塞与非阻塞调用的不同。第一个实例在文件读取完后才执行程序。 第二个实例我们不需要等待文件读取完,这样就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能。

因此,阻塞是按顺序执行的,而非阻塞是不需要按顺序的,所以如果需要处理回调函数的参数,我们就需要写在回调函数内。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值