Node.js 当我读/写同一个文件时会发生什么?
我正在学习NodeJS的事件模型 我对输出感到困惑 代码只需将一些文本写入文件并将其读回即可。 执行命令似乎超出了我的控制Node.js 当我读/写同一个文件时会发生什么?,node.js,Node.js,我正在学习NodeJS的事件模型 我对输出感到困惑 代码只需将一些文本写入文件并将其读回即可。 执行命令似乎超出了我的控制 var fs=require('fs'); var ws=fs.createWriteStream(“my_file.txt”); ws.once('open',函数(fd){ log('ws_open'); write(“我的第一行”\n); write(“我的第二行”\n); write(“我的第三行”\n); ws.destroyson(); }); ws.onc
var fs=require('fs');
var ws=fs.createWriteStream(“my_file.txt”);
ws.once('open',函数(fd){
log('ws_open');
write(“我的第一行”\n);
write(“我的第二行”\n);
write(“我的第三行”\n);
ws.destroyson();
});
ws.once('close',function(){
log('ws_close');
});
var rs=fs.createReadStream(“my_file.txt”);
rs.setEncoding('utf8');
rs.once('open',函数(fd){
console.log('rs_open');
});
rs.once('close',function(){
console.log('rs_close');
});
rs.once('data',函数(data){
log('rs_data');
控制台日志(数据);
});
rs.once('error',函数(异常){
log('rs_exception');
console.log(异常);
});
这是输出
rs_打开ws_open
rs_关闭
关闭 有时,它变得 ws_open
rs_打开
遥感数据
我的第一排 rs_关闭
关闭 谁能给我解释一下吗
提前感谢。您正在做异步工作,就好像它是同步的一样。仅仅因为代码中的某些内容较低,并不意味着它会在以后发生。如果在完成写入之前不想读取文件,请将读取的内容放入写操作的回调中 如:(简化)
我在考虑文件锁定问题。(在多线程编程模型中考虑。)在某些情况下,模块可能同时读取/写入同一文件。在另一种语言中,我通常在完成之前锁定文件。但是,在NodeJS中,我如何以异步/非阻塞的方式思考呢?
writeFile (name, writeData, function (error) {
if (error)
.... // handle error
else { // successfully wrote file
readFile(name, function (error, readData) {
if (error)
.... // handle error
else { // successfully read file
... // do something with readData
}
});
}
});