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 回调函数

 

以上是关于Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.的主要内容,如果未能解决你的问题,请参考以下文章

Node.js - File System

node.js回调函数

Node.js回调函数

Node.js:创建应用+回调函数(阻塞/非阻塞)

node js异步IO机制

同步和异步 以及node js 回调函数