gpt4 book ai didi

javascript - 使用 HTML5 FileWriter 覆盖文件

转载 作者:技术小花猫 更新时间:2023-10-29 12:30:06 25 4
gpt4 key购买 nike

我正在使用 HTML5 FileWriter API保存我的网络应用程序的状态。我有一些 JS 会定期调用 FileWriter.write 来执行此操作(因此,随着时间的推移,会多次调用 write 方法)。默认情况下,FileWriter API 使用“附加”方法来编写不适合我需要的文件,因为我不想覆盖文件内容。

我首先尝试了这个:

this._writer.seek(0);
this._writer.write(content);

当您编写的文本比文件内容短时,这将不起作用。然后我尝试了这个:

this._writer.truncate(0);
this._writer.write(content);

这段代码应该清除文件然后写入我的新内容但是当调用 write 方法时我收到以下错误:

Uncaught InvalidStateError: An operation that depends on state cached in an interface object was made but the state had changed since it was read from disk.

奇怪的是:当我调试代码(带断点)时,错误没有发生,好像 FileWriter.truncate 是一个异步方法......

我被困在这里,有什么想法吗?

我使用的是 Chrome 30.0.1599.69

最佳答案

这是一个不会浪费 500 毫秒等待的正确代码

fileWriter.onwriteend = function() {
if (fileWriter.length === 0) {
//fileWriter has been reset, write file
fileWriter.write(blob);
} else {
//file has been overwritten with blob
//use callback or resolve promise
}
};
fileWriter.truncate(0);

关于javascript - 使用 HTML5 FileWriter 覆盖文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19426698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com