我正在开发一个Node webkit桌面应用程序,我需要同步编写一个文件,即只有当文件完全写在磁盘上时才执行代码行。
所以,我尝试了两种方法:
var fs = require('fs');
tmpFileName = "/the/path/to/my/file";
fileContent = "a big string";
myfile = fs.openSync(tmpFileName, "w");
fs.writeSync(myfile, fileContent);
fs.closeSync(myfile);
和
var fs = require('fs');
fs.writeFileSync(tmpFileName, realContent);
但它们都不是同步的:即使节点JS doc表明这是这样做的方法,它们会立即返回:https://nodejs.org/api/fs.html#fs_fs_close_fd_callback
我做错了什么?
由于
答案 0 :(得分:1)
也许你应该尝试使用writeFile并在其回调中完成其余的逻辑?
var fs = require('fs');
fs.writeFile(tmpFileName, realContent, function(err){
if(err){
//Do your error logic
}
//Do your post writing logic
});