2016-06-29 8 views
0

別の式の中で式を呼び出す際に問題がありますか?原因時:Esper create式 - ReferenceError: "function "が定義されていません

create expression int js:hexToBin(hex) [ 
    var bin = ''; 
    for (var i = 0; i <= hex.length - 1; i += 1) { 
    bin += ('0000' + parseInt(hex.substr(i, 1), 16).toString(2)).slice(-4); 
    }; 
    parseInt(bin, 2); 
]; 

create expression int js:getTemperature(hex) [ 
    hexToBin(hex.substring(4, 6)); 
]; 

エラーが発生しました\ "hexToBin \"が定義されていません。 (getTemperature#2)。しかし、すべてのコードをgetTemperatureに入れると、正しく動作します。

答えて

0

すでに言いましたように、あなたはJavaScriptを使用しているため、エスパーの考えはありません。

しかし、式には単一の関数を含める必要はありません。これはスクリプトの一部のエントリなので、コードを構造化する場合は、単一の式の中に複数のJavaScript関数を定義できます。

+0

私のhexToBin関数にアクセスするには複数の関数が必要です。式getTemperatureを作成し、内部にJS関数としてhexToBinを含めると、別の式getSomethingElseが必要な場合はhexToBinを複製する必要があります。私は、複数の関数から関数を呼び出す方法が必要です。 –

+0

最終的に見えるようにすべてがどのように訴えられているかを100%確信していない。今のところgetTemperatureが行うのは部分文字列だけです。この機能は、(Java Stringの.subsring関数を使用して)直接esperでも利用できます。たぶんhexToBin関数しか必要ないかもしれません – TyrManuZ

+0

この場合、何かを理解することができますが、より複雑なケースのコードを分解できるかどうかは疑問でした。 –

0

JavaScriptコードはEPL式を認識していません。 RhinoがEPL表現について語られるかどうかを調べることは興味深いでしょう。

関連する問題