文件系统,文件未写入,无错误NodeJS



我正试图使用NodeJS提供的FileSystem模块写入.txt文件。然而,它没有运行,也没有显示任何错误。根据进一步的预期,我还可以判断read/writeFileSync的回调没有运行。

utils.js

writeFile(path,encoding)
{
console.log('debug write')
fs.writeFileSync(path,encoding,(err)=>{
if(err) console.log(this.errorCodes.state.err004);
else console.log('success');
return;
});
return;
}
readFile(path,encoding)
{
console.log('debug read')
return fs.readFileSync(path,encoding,(err)=>
{
if(err) console.log(this.errorCodes.state.err004) 
});
}

state.js

//returns data from state
async get(key)
{
//root not updating to interact with state
this.utils.readFile('./tempRoot.txt','utf8');
console.log(this.root)
const value = await this.trie.get(Buffer.from(key));
console.log(value.toString())

return 
}
//sets data in state
async set(key,value)
{
await this.trie.put(Buffer.from(key),Buffer.from(value));
this.setRoot();
return;
}
//set root of state
setRoot()
{
const root = this.getRoot().toString('hex');

console.log(root)
this.utils.writeFile('./tempRoot.txt',root);
}

我的猜测是,同步操作是在异步函数中调用的,但我不明白为什么会有效果,因为它只是等待然后执行文件写入/读取函数?

问题:我做错了什么?如果是异步函数,那会有什么影响呢?

由于我没有足够的声誉发表评论,我将链接答案:fs.writeFileSync不接受回调

fs.writeFileSync函数不采用参数来传递回调函数,而是抛出一个要捕获的错误;请参阅文档:fs.writeFileSync

回调函数在另一个函数完成执行后运行。独立执行的异步函数需要这样的等待。另一方面,同步函数会阻塞控制流,从而不需要回调函数。

相关内容

  • 没有找到相关文章

最新更新