2016-03-23 2 views
1

Когда я пытаюсьКак использовать события в ChromeWorker?

var { on, once, off, emit } = require('resource://gre/modules/commonjs/sdk/event/core'); 

внутри моего worker.js, я получаю сообщение об ошибке, что

TypeError: The argument to require() must be a string uri, got ../core/namespace 

однако, тот же вызов отлично работает в моем index.js. Недоступны ли события от рабочих?

Обновление. Я думаю, что это, вероятно, проблема внутри core.js, поскольку есть sdk/core/namespace для https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/core_namespace, к сожалению, требуется ('sdk/event/core') этого не делает.

+0

Хм Я не уверен, может быть, что 'require' вы используете, это другой тип' require'. Я думаю, что SDK ожидает использования не-ресурсного пути. Так что 'require ('event/core')' должно быть, должно быть, все, что вам нужно – Noitidart

+0

Кажется, что импортированный ChromeWorker '' 'require''' действительно отличается. Однако для этого требуется использовать строку uri. Пример в https://developer.mozilla.org/en-US/docs/Mozilla/ChromeWorkers/Chrome_Worker_Modules, где вам требуется ("resource: //gre/modules/osfile/osfile_shared_allthreads.jsm"); работает. Я думаю, что внутри sdk/event/core он говорит вам загружать ../core/namespace, и это значит, что этот новый запрос не выполняется. – tofutim

+0

Я просто хочу «это просто работает (TM)» – tofutim

ответ

1

О, я вижу, что здесь происходит. Вы не можете использовать эти SDK-модули или другие компоненты XPCOM в ChromeWorker. Это те вещи, доступные для рабочих -

https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Functions_and_classes_available_to_workers#workerscope

Вне этого, вам придется обрабатывать все сами. Рабочие очень легкие, очень голые.

+0

, что не объясняет, почему вы можете потребовать («resource: //gre/modules/osfile/osfile_shared_allthreads.jsm») в примере – tofutim

+0

Этот модуль ('osfile' и зависимостей) использует только ctypes. Таким образом, безопасно импортировать в рабочих. – Noitidart

Смежные вопросы