Node.js 中同步函数相对于异步函数的优势是什么?
Node.js 为我们提供了一个内置的 fs(文件系统)模块,用于处理读取记录、编写文档、擦除文档等任务的不同文档。 fs 模块可以使用下面的解释来介绍:
句法:
npm introduce fs --save
注意:上述顺序中的 npm 代表集线器包管理器,从中可以在 Node.js 中引入每个条件。
要使用 fs 模块,请在代码中附加随附的断言:
const fs = require('fs');
fs 模块具有各种文档处理任务,如读取记录、编写文档、粘贴文档、关闭文档、擦除记录等。每一项活动都可以根据客户的先决条件以协调和非并行的方式进行。
1.同步方法:同步容量阻塞程序的执行,直到文档活动被执行。这些能力也称为阻碍能力。同步技术将文件描述符作为最后一个争用。文档描述符是对打开记录的引用。它是使用 fs 模块的 fs.open() 策略打开记录后返回的文档的数字或参考 id。通过将“同步”附加到容量名称中,可以同时执行所有另类技术。 Node.js 中 fs 模块的部分同步技术是:
- fs.readFileSync() 方法
- fs.renameSync() 方法
- fs.writeSync() 方法
- fs.writeFileSync() 方法
- fs.fsyncSync() 方法
- fs.appendFileSync() 方法
- fs.statSync() 方法
- fs.readdirSync() 方法
- fs.existsSync() 方法
同步学习的好处:
- 参与者之间的互动。
- 参与者之间的知识和经验交流。
- 实时反馈给导师。
- 培训按固定时间表进行。
示例 1:同步读取技术:
让我们创建一个名为 main.js 的 JavaScript 记录和一个名为 sample.txt 的文本文档,并带有随附的断言:
GeeksForGeeks is a Computer Science portal.
在 main.js 记录中添加随附的代码并执行它:
Javascript
var fs = require("fs");
// Synchronous read
console.log("Synchronous read method:");
var information = fs.readFileSync('sample.txt');
console.log("Data in the document is - "
+ data.toString());
Javascript
var fs = require("fs");
// Coordinated read
console.log("Synchronous attach method:");
var information = "\nGeeksForGeeks is a Computer Science entrance.";
// Attach information to record
fs.appendFileSync('sample.txt', information, 'utf8');
console.log("Data is attached to record effectively.")
information = fs.readFileSync('sample.txt');
console.log("Data in the record subsequent to adding is - \n" +
data.toString());
Javascript
var fs = require("fs");
// Offbeat read
console.log("Asynchronous read method:");
fs.readFile('sample.txt', work(blunder, information){
in the event that(blunder) {
return console.error(err);
}
console.log("Data in the document is - "
+ data.toString());
});
Javascript
var fs = require("fs");
const information =
"\nGeeksForGeeks is a Computer Science entrance.";
// Asynchronously attaching information to document
fs.appendFile('sample.txt', information, 'utf8',
// Callback work
function (err) {
// In event that(fail) toss blunder
// In the event that no mistake
console.log("Data is added to document effectively.")
});
fs.readFile('sample.txt', work(fail, information) {
if(fail) {
return console.error(err);
}
console.log(
"Data in the record in the wake of affixing: \n" +
data.toString()
);
});
输出:
示例 2:同步附加策略
让我们创建一个名为 main.js 的 JavaScript 记录和一个名为 sample.txt 的文本文档,并带有随附的断言:
Hi World !
在 main.js 记录中添加随附的代码并执行它:
Javascript
var fs = require("fs");
// Coordinated read
console.log("Synchronous attach method:");
var information = "\nGeeksForGeeks is a Computer Science entrance.";
// Attach information to record
fs.appendFileSync('sample.txt', information, 'utf8');
console.log("Data is attached to record effectively.")
information = fs.readFileSync('sample.txt');
console.log("Data in the record subsequent to adding is - \n" +
data.toString());
输出:
2.异步方式:异步函数不妨碍程序的执行,无论过去的订单是否没有登记结果,每个订单都在过去的订单之后执行。过去的订单在幕后运行,一旦处理完毕,就会给结果带来负担。因此,这些能力被称为非阻碍能力。他们接受回调工作作为最后一个边界。异步功能在很大程度上比同时功能更受欢迎,因为它们不会阻碍程序的执行,而协调功能会阻止程序的执行,直到它完成处理。 Node.js 中 fs 模块的一部分非并发策略是:
- fs.readFile() 方法
- fs.rename() 方法
- fs.write() 方法
- fs.writeFile() 方法
- fs.fsync() 方法
- fs.appendFile() 方法
- fs.stat() 方法
- fs.readdir() 方法
- fs.exists() 方法
耗费时间处理的繁重任务。例如,从数据集中查询大量信息应该异步完成,因为在任何情况下都可以执行不同的活动,并以这种方式减少程序的执行时间。
异步学习的好处:
- 参与者可以根据自己的时间和时间表进行学习。
- 减少培训师和人力资源经理的工作量。
- 自动化任务减少了重复性工作,例如在线课程和评分考试。
- 员工和客户在工作时间花在教室或圆形剧场的时间更少。
- 没有与其他人的实时交互。
Example1:异步读取技术
第 1 阶段:让我们创建一个名为 main.js 的 JavaScript 文档和一个名为 sample.txt 的文本记录,并附带断言:
GeeksForGeeks is a Computer Science portal.
第 2 阶段:在 main.js 记录中添加随附的代码并执行它:
Javascript
var fs = require("fs");
// Offbeat read
console.log("Asynchronous read method:");
fs.readFile('sample.txt', work(blunder, information){
in the event that(blunder) {
return console.error(err);
}
console.log("Data in the document is - "
+ data.toString());
});
输出:
示例 2:异步附件技术
第 1 阶段:让我们创建一个名为 main.js 的 JavaScript 文档和一个名为 sample.txt 的文本记录,并附带断言:
Hi World !
第 2 阶段:在 main.js 记录中添加随附的代码并执行它:
Javascript
var fs = require("fs");
const information =
"\nGeeksForGeeks is a Computer Science entrance.";
// Asynchronously attaching information to document
fs.appendFile('sample.txt', information, 'utf8',
// Callback work
function (err) {
// In event that(fail) toss blunder
// In the event that no mistake
console.log("Data is added to document effectively.")
});
fs.readFile('sample.txt', work(fail, information) {
if(fail) {
return console.error(err);
}
console.log(
"Data in the record in the wake of affixing: \n" +
data.toString()
);
});
输出: