我正在使用HTML5 FileWriter API来保存我的 webapp 的状态。我有一些 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