fs.readFile('input.txt', function(err, data) {
if (err) {
return console.error(err);
}
console.log(data.toString());
});
console.log("Program Ended");
input.txt
包含字符串"hello"
。
Program Ended
hello
为什么在"program ended"
之前打印"hello"
?
这不是逐行执行吗?
答案 0 :(得分:2)
回调函数内的代码(打印文件内容的代码)不会阻止执行。它在读取文件后异步执行。
答案 1 :(得分:0)
fs.readFile 是异步,这意味着,正如@madox2 所说,它不会阻止执行。如果你想在 fs.readFile 之后记录 Program Ended
,你可以使用 fs.readFileSync。 fs.readFileSync 是同步的,意味着 console.log("Program Ended")
将在之后执行。