我可以多次用deno异步写入文件吗?

时间:2020-03-23 07:25:31

标签: javascript asynchronous deno

nodejs 文档对此问题的说明如下:

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

现在,我在deno文档中找不到任何有关它的信息,我想知道deno是否建议不要对同一文件在短时间内多次写入 ,或者它们是否已处理通过Rust不同。 如果他们对此提出建议,建议的解决方法是什么?

谢谢!

1 个答案:

答案 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()
相关问题