仅供像我这种菜鸟记忆才写,高手就路过吧。
首先,先了解下什么叫同步,什么叫异步。同步得话就很容易理解了,就是程序自上而下运行,而异步就是不用等待上面的运行完后再运行下面的操作。异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。
下面通过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()然后才执行回掉函数里的代码。
转载请注明原文地址: https://ju.6miu.com/read-4220.html