我是文件操作函数的写单元测试(mocha chai) 我是Node.Js的初学者,但习惯了其他语言 我使用的是typescript,但样本是在JS
中这是我的问题: 函数写入文件 当程序稍后读取文件时,文件为空 当我查看程序完成时,文件已填满
快速提供示例代码
const fs = require("fs");
function test() {
let fss = fs.createWriteStream("file.txt", { flags: 'a+' });
fss.write("bla");
fss.end(() => {
fss.destroy();
});
}
test();
let val = fs.readFileSync('file.txt', 'utf8');
console.log(val); // empty
但这不是我第一次遇到这个问题。什么是好的做法:promisify,事件(我不喜欢作为回调的一切)?
答案 0 :(得分:1)
有两种选择:
完成写入流
后,调用所需的代码this shit is working yo!
在const fs = require("fs");
function test() {
let fss = fs.createWriteStream("file.txt", { flags: 'a+' });
fss.write("bla");
fss.end(() => {
fss.destroy();
let val = fs.readFileSync('file.txt', 'utf8');
// do stuff here with val
});
}
test();
Promise
test
使用const fs = require("fs");
function test() {
return new Promise((resolve, reject) => {
let fss = fs.createWriteStream("file.txt", { flags: 'a+' });
fss.write("bla");
fss.end(() => {
fss.destroy();
resolve();
});
});
}
test().then(() => {
let val = fs.readFileSync('file.txt', 'utf8');
// do stuff here with val
});
/ async
语法
await