嗨, 大家好: 网站在新年后正式开通,欢迎大家加入我们,共同维护一个良好氛围的中国技术社区。 欢迎举报不良帖子,欢迎提供建议。
我们的QQ群:136102234,欢迎进群找答案,里边会有很多资深的大师们。 point overflow

Node.js 异步编程的直接体现就是回调。

异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。

回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。

例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js 的性能,可以处理大量的并发请求。

提问了 2016-06-12 09:57:47

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%


用2个例子来做说明: input.txt是个文本文件。

1.顺序执行(阻塞),必须等待上一个执行完成后再往下执行 var fs = require("fs");

var data = fs.readFileSync('input.txt');

console.log(data.toString()); console.log("程序执行结束!");

永久链接

已回答 2016-06-12 09:59:02

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

2.非顺序执行(异步),采用回调函数的方式实现异步,不需要等待读取文件完成,可以先执行后续处理 var fs = require("fs");

fs.readFile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.toString()); });

console.log("程序执行结束!");

永久链接

已回答 2016-06-12 10:00:12

jkant's gravatar image

jkant ♦♦
11131137138
采纳率: 3%

你的回答
切换预览

关注这个问题

邮件:

登录之后,你可以在这里订阅任何更新。

RSS:

回答

回答和评论

Markdown基本语法

  • *italic* or _italic_
  • **bold** or __bold__
  • 链接:[文本](http://url.com/ "标题")
  • 图片?![alt 文本](/path/img.jpg "标题")
  • 编号列表: 1. Foo 2. Bar
  • 如果想要换行,只需要在前一行结尾处插入2个空格即可。
  • 支持基本HTML标记

问题标签:

×24
×1

已提出的问题: 2016-06-12 09:57:47

问题浏览量: 933 次

最后更新: 2016-06-12 10:00:12