Node.js使用回调

本文概述

  • 阻止代码示例
  • 非阻塞代码示例
回调是函数的异步等效项。在每个任务完成时调用它。在Node.js中, 通常使用回调。 Node的所有API均以支持回调的方式编写。例如:函数开始读取文件时, 它将立即将控件返回到执行环境, 以便可以执行下一条指令。
在Node.js中, 一旦文件I / O完成, 它将调用回调函数。因此, 没有阻塞或等待文件I / O。这使Node.js具有高度可伸缩性, 因为它可以处理大量请求, 而无需等待任何函数返回结果。
阻止代码示例 按着这些次序:
创建一个名为input.txt的文本文件, 其内容如下:
srcmini is an online platform providing self learning tutorials on different technologies, in a very simple language.

使用以下代码创建一个名为main.js的JavaScript文件:
var fs = require("fs"); var data = http://www.srcmini.com/fs.readFileSync('input.txt'); console.log(data.toString()); console.log("Program Ended");

打开Node.js命令提示符并执行以下代码。
node main.js

Node.js使用回调

文章图片
非阻塞代码示例 按着这些次序:
创建一个名为input.txt的文本文件, 其内容如下:
srcmini is an online platform providing self learning tutorials on different technologies, in a very simple language.

使用以下代码创建一个名为main.js的JavaScript文件:
var fs = require("fs"); fs.readFile('input.txt', function (err, data) { if (err) return console.error(err); console.log(data.toString()); }); console.log("Program Ended");

打开Node.js命令提示符并执行以下代码。
node main.js

Node.js使用回调

文章图片
你可以看到上面的两个示例说明了阻塞和非阻塞调用的概念。第一个示例显示程序阻塞, 直到它读取文件, 然后在第二个示例中才继续终止程序, 程序不等待文件读取, 而是继续打印” Program Ended” 并同时打印程序无阻碍地继续读取文件。 【Node.js使用回调】因此, 可以说, 阻塞程序是按顺序执行的。从程序的角度来看, 在块程序中实现逻辑也更容易。但是非阻塞程序不会按顺序执行, 因此, 如果程序需要使用任何要处理的数据, 则应将其保留在同一块中以使其顺序执行。

    推荐阅读