繁体   English   中英

检查文件是否同步存在是什么意思?

[英]What does it mean to check if a file exists synchronously?

我正在尝试了解Node.js中的fs.statSync命令。 我读过这个问题,在Node.js同步检查文件/目录是否存在 ,它将检查文件是否同步存在。 我不明白这意味着什么,检查同步是否存在与异步是否存在之间有什么区别。

同步和异步之间的主要区别是异步不等待。 您必须学习如何以全新的方式编写代码,以确保事情以正确的顺序发生。

值得学习如何执行此操作,但起初可能需要一点儿大脑。

fs.readFileSync(file); // Stops and waits for completion.
console.log("This will always print after fs.readFileSync.");

fs.readFile(file, function callback(err, data) { // Doesn't stop but will run the callback when it HAS read the file.
  if (err) throw err; // File doesn't exist.
  console.log(data);
});
console.log("This will print before fs.readFile finishes, probably, it might not, but it might, you never quite know.");

同步意味着您的代码将等待直到得到结果。 fs.statSync()获得结果之前,线程中什么都不会发生。 您的其他代码均未运行。 您基本上已经锁定了程序。

异步意味着该函数立即返回,您的代码可以继续运行,但是您不知道立即得到什么。 相反,结果是通过稍后触发的回调函数提供给您的。

同步意味着您的线程将在等待文件系统找出文件是否存在时阻塞。

如果以异步方式执行此操作,则仍然会询问文件系统,但是文件系统将能够在后台执行此操作,从而允许线程继续运行。 一旦文件系统知道文件是否存在,它可能会在您的代码中调用一个回调函数来通知您此消息,或者以其他方式通知您而不会阻塞您的执行线程。

这意味着在操作期间,当前“线程”的执行将冻结。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM