nodejs 文档对此问题的说明如下:
在同一文件上多次使用fs.write()而不等待回调是不安全的。在这种情况下,建议使用fs.createWriteStream()。
现在,我在deno文档中找不到任何有关它的信息,我想知道deno是否建议不要对同一文件在短时间内多次写入 ,或者它们是否已处理通过Rust不同。 如果他们对此提出建议,建议的解决方法是什么?
谢谢!
答案 0 :(得分:1)
不等待诺言完成的异步write
对于deno也是不安全的。
有关实际演示:
// If safe the file content would be ABCDEFGHIJ
async function main() {
let n = new Uint8Array(1);
const file = await Deno.open("bar.txt", { write: true, create: true });
for (var i = 65; i < 75; i++) {
n[0] = i;
Deno.write(file.rid, n);
}
}
main();
我的Linux机器上的bar.txt
内容不是ABCDEFGHIJ
而是“ JJ”。
请注意,这个特定示例实际上显示了两个问题:
Deno.write
,就无法使用await
安全访问文件资源i
个调用之间共享相同的最后一个J
循环变量值write()
。