Разрешены ли действия записи нескольких BLOB-объектов в API-интерфейсе файловой системы Google Chrome? - PullRequest
3 голосов
/ 07 февраля 2012

Я играю с API-интерфейсом FileSystem в Google Chrome 16, но не могу написать более одного блоба (без повторного открытия файла для добавления).Похоже, файл закрывается после первой записи.

Например:

var blob = new WebKitBlobBuilder();
blob.append('one');
fileWriter.write(blob.getBlob('text/plain'));

var blob2 = new WebKitBlobBuilder();
blob2.append('two');
fileWriter.write(blob2.getBlob('text/plain'));

дает _Uncaught Ошибка: INVALID_STATE_ERR: исключение файла DOM 7_

В документе W3 говорится о FileWriter : "Этот интерфейс расширяет интерфейс FileSaver, позволяя выполнять несколько операций записи, а не просто сохранять один большой двоичный объект."

1 Ответ

2 голосов
/ 07 февраля 2012

Согласно спецификации, вы не можете использовать писатель , когда он занят написанием :

write

  1. Если readyState равно WRITING, выведите FileException с кодом ошибки INVALID_STATE_ERR и завершите эту общую последовательность шагов.

Поскольку писатель асинхронный, вам придется подождать, используя обратный вызов:

// write first blob

fileWriter.onwriteend = function() {
  // write second blob
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...