个性化阅读
专注于IT技术分析

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 = fs.readFileSync('input.txt');
console.log(data.toString());
console.log("Program Ended");

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

node main.js
Node.js回调1

非阻塞代码示例

按着这些次序:

创建一个名为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回调2

你可以看到上面的两个示例说明了阻塞和非阻塞调用的概念。第一个示例显示程序阻塞, 直到它读取文件, 然后在第二个示例中才继续终止程序, 程序不等待文件读取, 而是继续打印” Program Ended”并同时打印程序无阻碍地继续读取文件。

因此, 可以说, 阻塞程序是按顺序执行的。从程序的角度来看, 在块程序中实现逻辑也更容易。但是非阻塞程序不会按顺序执行, 因此, 如果程序需要使用任何要处理的数据, 则应将其保留在同一块中以使其顺序执行。

赞(0)
未经允许不得转载:srcmini » Node.js使用回调

评论 抢沙发

评论前必须登录!