nodejs同步与异步的区别

仅供像我这种菜鸟记忆才写,高手就路过吧。

首先,先了解下什么叫同步,什么叫异步。同步得话就很容易理解了,就是程序自上而下运行,而异步就是不用等待上面的运行完后再运行下面的操作。异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。

下面通过nodejs的两个例子来展现同步与异步的不同之处。

新建一个txt文件,然后随便输入几个字,保存,保存的时候记得要保存为UTF-8的编码格式。否则会出现乱码

然后创建个js文件,内容如下

var fs = require("fs");
var data = fs.readFileSync('input.txt');
console.log(data.toString());
console.log("程序执行结束");
在cmd中输入node main.js运行创建的js文件,会输出如下内容:


上面那个是同步(阻塞)代码,下面这个是异步(非阻塞)。

再创建个main1.js文件

var fs = require("fs");
fs.readFile('input.txt',function(err,data){
	if(err) return console.error(err);
	console.log(data.toString());
});
console.log("非阻塞代码实例运行成功");
运行如下:


可以很明显的看出来上面阻塞代码程序是正常的同步加载,代码由上到下执行。下面这个异步(非阻塞)代码程序会先输出下面的console.log()然后才执行回掉函数里的代码。


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值