2016-03-23 8 views
1

は私がChromeWorkerでイベントを使用するにはどうすればよいですか?

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

しかし、同じコールは私のindex.jsで正常に動作することを私のworker.js内部

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

に、私はエラーを取得しようとします。イベントは労働者からアクセスできないのですか? https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/core_namespaceにsdk/core/namespaceがあり、悲しいことに( 'sdk/event/core')それをしないことが必要なので、これはおそらくcore.js内の問題だと思います。

+0

私は確信していません、あなたが使用している '要求する'は '要求'とは違うかもしれません。私は、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

私はここで何が起こっているのか分かります。 ChromeWorkerでは、このSDKモジュールや他のXPCOMコンパネを使用することはできません。これらは、労働者が利用できるものです - それ以外で

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

、あなたはすべてを自分で処理する必要があります。労働者は非常に軽い重量、非常に裸です。

+0

したいのですが、その例では( "リソース://gre/modules/osfile/osfile_shared_allthreads.jsm")を要求できる理由を説明しません – tofutim

+0

そのモジュール( 'osfile'と依存関係)はctypesのみを使用します。したがって、労働者への輸入は安全です。 – Noitidart

関連する問題