Я использую HTML5 FileWriter API, чтобы сохранить состояние моего webapp. У меня бит JS, который периодически вызывает FileWriter.write
, чтобы сделать это (поэтому со временем метод write
вызывается несколько раз). По умолчанию API FileWriter использует подход "append" для записи файлов, которые не соответствуют моим потребностям, поскольку я не хочу перезаписывать содержимое файла.
Я впервые попробовал это:
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