Передача объектов рабочим

Я попытаю счастья с расширением Mozilla.

Я хочу использовать приведенный ниже код для чтения строки за строкой из файла и сохранения содержимого в массиве. И я пытался использовать рабочих для выполнения этой задачи в фоновом режиме, вдали от основного потока. Проблема, с которой я столкнулся, заключается в том, что я не могу передать ни «Компоненты», ни входной поток рабочему процессу в функции postMessage() без получения ошибки DataCloneError.

https://developer.mozilla.org/en-US/docs/Code_snippets/File_I_O#Line_by_line

Любые идеи о том, как и что передать работнику, чтобы он работал? А если нет, то как выполнить эту задачу асинхронно, если не с помощью воркеров?


person AndreiBogdan    schedule 17.06.2013    source источник


Ответы (1)


Вы не можете передать ничего, кроме чистого JSON рабочему, и Components, и любой из Components.classes не сериализуются в JSON.

Взгляните на модуль JavaScript NetUtil.jsm, вроде все в порядке использовать сетевые утилиты для чтения локальных файлов. В конце концов, все по-прежнему сокет.

Кроме того, вы можете просто сделать код из своего фрагмента асинхронным со старым добрым setInterval.

person nilfalse    schedule 17.06.2013