2016-12-08 25 views
0

ワーカースレッドでは、postMessage()を呼び出してメインスレッドにメッセージを返すときに、単一の引数シグネチャを許可しません。postMessage()のワーカースレッドの問題

postMessage({success:true});

VisualCodeは、postMessage(any、string、transfer?)の必須の署名を表示しています。

私はrequire( 'globals')を持っています。ワーカーファイルの最上部に表示されます。

これは私がこれまで持っているものです。

require('globals'); // necessary to bootstrap tns modules on the new thread 
 

 
onmessage = function(msg) 
 
{ 
 
    var request = msg.data; 
 
    var data = request.data; 
 
    var result = "OK"; 
 

 
    var message : any = result !== undefined ? { success: true, src: result } : { }; 
 

 
    postMessage(message); // << problem 
 
}

+0

使用しているワーカースレッドの実装は何ですか?どのバージョンのNativeScript? –

+0

NS 2.4.1とTS 1.8.10 – dashman

答えて

0

あなたが見ているエラーが最も可能性の高い活字体を使用した結果として、コンパイルエラーであることを言及することは重要です。

nativescriptワーカーの実装では、現在のバージョンでは1つの引数しか取るべきではありません。彼らは、適切な定義が含まれているよう

node_modules/tns_core_modules/webworker.es2016.d.tsへの参照を追加します

+0

おっとします。私はreferences.d.tsへの参照を追加し、Visual Code/tsエラーは消え去った。しかし、私がコンパイルしようとすると、重複したWorkerエラーが発生します。私はTS 1.8.10を使用しています。 TS 2.0以降を使用する必要がありますか?これらのes2016の定義にはそれが必要です。 – dashman

+0

競合が 'node_modules/typescript/lib/lib.d.ts(16138,11)であるようです:エラーTS2300:重複した識別子'ワーカー '。 – dashman

1

それだ少しの回避策、しかし、私はこのような労働者のファイルのbegginingで再宣言された関数のシグネチャを追加することによって、私のアプリでそれを修正するために管理:

declare function postMessage(message: any); 

希望します。

+0

tnx、非常に良い。 –

関連する問題