Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.

1.阻塞. 同步.

1) 读取的文件: input.txt

菜鸟教程官网地址:www.runoob.com

2) main.js

 var fs = require("fs");

 //同步读取, 阻塞代码,按顺序执行的
var data = fs.readFileSync('input.txt'); console.log(data);
console.log(data.toString());
console.log("程序执行结束!");

执行:

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

注意:

第一:绿色方框的是 输出 data.     可见 不可以直接输出读取的文件,  要使用  data.toString()

第二: 阻塞执行 ,是同步的, 按照顺序的.

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

如果指定 字符集.

 var fs = require("fs");

 //同步读取, 阻塞代码,按顺序执行的
var data = fs.readFileSync('input.txt', 'utf8');
console.log(data);
console.log(data.toString());
console.log("程序执行结束!");

执行:

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

2. 非阻塞 ,异步:

1) 要读取的文件 .   input.txt

菜鸟教程官网地址:www.runoob.com

2) main.js

 var fs = require("fs");

 //同步读取, 阻塞代码,按顺序执行的
// var data = fs.readFileSync('input.txt');
// console.log(data);
// console.log(data.toString());
// console.log("程序执行结束!"); //异步读取, 阻塞, 不是按照顺序.
fs.readFile("input.txt", function(err, data){
//err:
console.log("err:", err);
if (err) {
return console.error(err);
};
console.log(data); console.log(data.toString());
}); console.log("程序执行结束!");

执行:

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

-----------------

如果指定 字符集.

var fs = require("fs");

//同步读取, 阻塞代码,按顺序执行的
// var data = fs.readFileSync('input.txt');
// console.log(data);
// console.log(data.toString());
// console.log("程序执行结束!"); //异步读取, 阻塞, 不是按照顺序.
// fs.readFile("input.txt", function(err, data){
// //err:
// console.log("err:", err);
// if (err) {
// console.error(err);
// };
// console.log(data); // console.log(data.toString());
// }); // console.log("程序执行结束!"); fs.readFile("input.txt","utf8", function(err, data){
//err:
console.log("err:", err);
if (err) {
return console.error(err);
};
console.log(data); console.log(data.toString());
}); console.log("程序执行结束!");

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

Node.js 回调函数  1) 阻塞 ,同步   2) 非阻塞 ,异步.

参考链接:

Node.js 回调函数

上一篇:[转]ORACLE函数大全


下一篇:9、Node.js Stream(流)