如何编写没有回调的writeFile()
函数?
这不起作用:
fs.writeFile("/logs/file.log", 'Message')
fs.writeFile("/logs/file.log", 'Message',null)
两者都抛出一个:
TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
我需要实现一个非阻塞解决方案。
答案 0 :(得分:4)
我需要实现一个非阻塞解决方案。
因此,您必须使用 ASYNC 功能而不是同步。
writefile()
是一个异步函数,因此需要一个callback function
。
var fs = require('fs');
fs.writeFile("/logs/file.log", "Message", function(err) {
if(err) {
return console.log(err);
}
console.log("The file is saved!");
});
答案 1 :(得分:2)
uniqueidentifier
如果您根本不必通过回调函数,请创建另一个函数:
_HIS
更好的是,// create a noop - as in "no operation"
const noop = () => {};
// and pass that in
fs.writeFile("filename.txt", "content", noop);
函数:
const writeFile = (filename, content) => {fs.writeFile(filename, content, () => {}));
// and use it like this
writeFile("filename.txt", "content");
答案 2 :(得分:1)
您可以使用writeFile
代替使用writeFileSync
。 writeFile
要求传递回调,而writeFileSync
不需要回调函数。有关更多信息,您可以参考writeFileSync
NodeJS文档
这应该为您工作
fs.writeFileSync("/logs/file.log", 'Message')
在阅读您对问题的评论时,如果您希望坚持使用writeFile
,则需要传递回调函数,因为它是异步的。您可以通过编写来缩短它
fs.writeFile("/logs/file.log", 'Message', () => {})
答案 3 :(得分:1)
如果您真的不关心结果(错误是/否),则可以解决问题。
fs.writeFile("/logs/file.log", 'Message', () => {})