0

nodejs文档对此问题进行了以下说明

在同一个文件上多次使用 fs.write() 而不等待回调是不安全的。对于这种情况,建议使用 fs.createWriteStream()。

现在,我在 deno 文档中找不到任何关于它的信息,我想知道 deno 是否还建议不要以短频率对同一个文件进行多次写入,或者他们是否通过 Rust 以不同的方式处理它。如果他们反对它,推荐的解决方法是什么?

谢谢!

4

1 回答 1

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循环变量值。Jwrite()
于 2020-04-03T16:53:02.420 回答