介绍
Node.js 异步编程的直接体现就是回调。
异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。
回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。
回调函数一般作为函数的最后一个参数出现:
1
2
| function foo1(name, age, callback) { }
function foo2(value, callback1, callback2) { }
|
阻塞代码(同步)实例
创建一个文件 test.txt ,内容如下:
创建 mainsync.js 文件, 代码如下:
1
2
3
4
5
6
| var fs = require("fs");
var data = fs.readFileSync('test.txt');
console.log(data.toString());
console.log("done!");
|
以上代码执行结果如下:
1
2
3
4
| $ node mainsync.js
laji shesl's test case
Done!!
|
非阻塞代码(异步)实例
创建一个文件 testasync.txt ,内容如下:
创建 mainasync.js 文件, 代码如下:
1
2
3
4
5
6
7
8
| var fs = require("fs");
fs.readFile('test.txt', function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("Done!!");
|
以上代码执行结果如下:
1
2
3
| $ node mainasync.js
Done!!
laji shesl's test case
|