Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.
Posted cb_za
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.相关的知识,希望对你有一定的参考价值。
1.阻塞. 同步.
1) 读取的文件: input.txt
菜鸟教程官网地址:www.runoob.com
2) main.js
1 var fs = require("fs"); 2 3 //同步读取, 阻塞代码,按顺序执行的 4 var data = fs.readFileSync(\'input.txt\'); 5 6 console.log(data); 7 console.log(data.toString()); 8 console.log("程序执行结束!");
执行:
注意:
第一:绿色方框的是 输出 data. 可见 不可以直接输出读取的文件, 要使用 data.toString()
第二: 阻塞执行 ,是同步的, 按照顺序的.
如果指定 字符集.
1 var fs = require("fs"); 2 3 //同步读取, 阻塞代码,按顺序执行的 4 var data = fs.readFileSync(\'input.txt\', \'utf8\'); 5 console.log(data); 6 console.log(data.toString()); 7 console.log("程序执行结束!");
执行:
2. 非阻塞 ,异步:
1) 要读取的文件 . input.txt
菜鸟教程官网地址:www.runoob.com
2) main.js
1 var fs = require("fs"); 2 3 //同步读取, 阻塞代码,按顺序执行的 4 // var data = fs.readFileSync(\'input.txt\'); 5 // console.log(data); 6 // console.log(data.toString()); 7 // console.log("程序执行结束!"); 8 9 //异步读取, 阻塞, 不是按照顺序. 10 fs.readFile("input.txt", function(err, data){ 11 //err: 12 console.log("err:", err); 13 if (err) { 14 return console.error(err); 15 }; 16 console.log(data); 17 18 console.log(data.toString()); 19 }); 20 21 console.log("程序执行结束!");
执行:
-----------------
如果指定 字符集.
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) 非阻塞 ,异步.的主要内容,如果未能解决你的问题,请参考以下文章