我在nodejs
中尝试了以下示例"use strict";
const
fs = require('fs');
fs.readFile('target.txt',function(err, data){
if (err) { throw err;
}
console.log(data.toString())
})
fs.writeFile('target.txt','writing some content',function(err){
if(err)
throw err;
console.log("file saved")
})
根据代码,我读取文件,打印其内容。然后我在同一个文件中写入一些内容并打印保存在控制台中的文本文件。但我的输出是
file saved
writing some content
首先执行writeFile
函数而不是readFile
。为什么会发生这种情况,如何避免这种情况?
答案 0 :(得分:5)
作为第二个参数传递给这两个函数的函数是回调。它们在操作完成时执行 - 并且不保证执行顺序。
为确保在读取完成后发生写入,请放置代码以触发对readFile
方法的回调的写入。
"use strict";
const fs = require('fs');
fs.readFile('target.txt', function(err, data) {
if (err) throw err;
console.log(data.toString());
fs.writeFile('target.txt', 'writing some content', function(err) {
if(err) throw err;
console.log("file saved")
});
});