📜  Node.js回调概念

📅  最后修改于: 2020-12-24 06:09:42             🧑  作者: Mango

Node.js回调

回调是函数的异步等效项。在每个任务完成时调用它。在Node.js中,通常使用回调。 Node的所有API均以支持回调的方式编写。例如:当函数开始读取文件时,它将立即将控件返回到执行环境,以便可以执行下一条指令。

在Node.js中,一旦文件I / O完成,它将调用回调函数。因此,没有阻塞或等待文件I / O。这使Node.js具有高度可伸缩性,因为它可以处理大量请求,而无需等待任何函数返回结果。

阻止代码示例

按着这些次序:

  • 创建一个名为input.txt的文本文件,其内容如下:
    1. Javatpoint是一个在线平台,提供有关以下方面的自学教程
    2. 不同的技术,用一种非常简单的语言。

  • 使用以下代码创建一个名为main.js的JavaScript文件:
    1. var fs = require (“ fs”);
    2. var data = fs .readFileSync('input.txt');
    3. console.log(data.toString());
    4. console.log(“程序结束”);

  • 打开Node.js命令提示符并执行以下代码。
    1. 节点main.js

非阻塞代码示例

按着这些次序:

  • 创建一个名为input.txt的文本文件,其内容如下:
    1. Javatpoint是一个在线平台,提供有关以下方面的自学教程
    2. 不同的技术,用一种非常简单的语言。

  • 使用以下代码创建一个名为main.js的JavaScript文件:
    1. var fs = require (“ fs”);
    2.   
    3. fs.readFile('input.txt',函数(err,数据){
    4. 如果(err)返回console.error(err);
    5. console.log(data.toString());
    6. });
    7. console.log(“程序结束”);

  • 打开Node.js命令提示符并执行以下代码。
    1. 节点main.js


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

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