Javascript 检查文件是否同步存在意味着什么?
我试图理解Node.js中的fs.statSync命令。我读到这个问题,它将检查文件是否同步存在。我不明白这意味着什么,检查它是否同步存在和检查它是否异步存在有什么区别 这意味着当前“线程”的执行将在操作期间冻结。同步意味着您的代码将等待直到得到结果。在从Javascript 检查文件是否同步存在意味着什么?,javascript,node.js,fs,Javascript,Node.js,Fs,我试图理解Node.js中的fs.statSync命令。我读到这个问题,它将检查文件是否同步存在。我不明白这意味着什么,检查它是否同步存在和检查它是否异步存在有什么区别 这意味着当前“线程”的执行将在操作期间冻结。同步意味着您的代码将等待直到得到结果。在从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.");