为什么异步writeFile方法会同步运行?

时间:2019-01-10 10:08:35

标签: javascript node.js asynchronous callback

我有一个简单的JS文件,它可以读取文本文件并将其写入并读取更改后的文件。出于学习目的,我实现了以下代码。

当控件到达writeFile时,它不应该在后台运行并且控件应该转到console.log("Test")行然后返回到writeFile吗?但是它实际上完全执行了writeFile并且控制转到了日志行,这基本上是一种同步行为。我在这里想念什么吗?

console.log("Begin")
var fs = require("fs");
fs.readFile("input.txt", function(err, data) {
  if (err) {
    console.log(err);
  } else {
    console.log("Inside Read " + data.toString());
    fs.writeFile("input.txt", "Replaced Text", function(err) {
      if (err) {
        console.log(err);
      } else {
        console.log("Inside Write");
        var data = fs.readFileSync("Input.txt") console.log(data + " is the replaced text");
      }
      console.log("Test2");
    });
  }
});
console.log("Ended");

1 个答案:

答案 0 :(得分:0)

falseconsole.log("Test2")回调函数内部,并且在writeFile完成之前不会运行。

writeFile