Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查文件是否同步存在意味着什么?_Javascript_Node.js_Fs - Fatal编程技术网

Javascript 检查文件是否同步存在意味着什么?

Javascript 检查文件是否同步存在意味着什么?,javascript,node.js,fs,Javascript,Node.js,Fs,我试图理解Node.js中的fs.statSync命令。我读到这个问题,它将检查文件是否同步存在。我不明白这意味着什么,检查它是否同步存在和检查它是否异步存在有什么区别 这意味着当前“线程”的执行将在操作期间冻结。同步意味着您的代码将等待直到得到结果。在从fs.statSync()获得结果之前,线程中不会发生其他任何事情。其他代码都不会运行。你基本上把程序锁起来了 异步意味着函数立即返回,代码可以继续运行,但您不知道结果是什么。相反,结果将在稍后启动的回调函数中提供给您。同步意味着您的线程将在等

我试图理解Node.js中的fs.statSync命令。我读到这个问题,它将检查文件是否同步存在。我不明白这意味着什么,检查它是否同步存在和检查它是否异步存在有什么区别

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

同步意味着您的代码将等待直到得到结果。在从
fs.statSync()
获得结果之前,线程中不会发生其他任何事情。其他代码都不会运行。你基本上把程序锁起来了


异步意味着函数立即返回,代码可以继续运行,但您不知道结果是什么。相反,结果将在稍后启动的回调函数中提供给您。

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


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

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

学习如何做到这一点是值得的,但一开始可能会有点脑筋扭曲

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.");