2016-06-29 6 views
0

다른 표현식에서 표현식을 호출하는 데 문제가 있습니까? 내가 할 때 원인 :Esper create expression - 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에서 이미 표현한 바와 같이 esper는 전혀 모른다.

그러나 표현식에 단일 함수가 포함될 필요는 없습니다. 스크립트의 일부 항목이므로 코드를 구조화하려는 경우 단일 표현식 내에 여러 JavaScript 함수를 정의 할 수 있습니다.

+0

좋아,하지만 내 hexToBin 함수에 액세스하려면 여러 함수가 필요합니다. 내가 getTemperature라는 표현식을 만들고 JS 함수 내부에 hexToBin을 포함 시키면 다른 식 getSomethingElse도 필요하다면 hexToBin을 복제해야 할 것입니다. wholdn't? 여러 함수에서 하나의 함수를 호출하는 방법이 필요합니다. –

+0

100 % 확신 할 수 없지만 결국에는 모든 것을 다 볼 수 있습니다. 지금까지 getTemperature가 수행하는 유일한 작업은 하위 문자열입니다. 이 기능은 esper에서 직접 사용할 수도 있습니다 (Java String .subsctring 기능을 통해). 어쩌면 hexToBin 함수 만 필요합니다. – TyrManuZ

+0

이 경우 뭔가를 알아낼 수는 있지만 더 복잡한 경우 코드를 인수 분해 할 수 있는지 궁금합니다. –

0

JavaScript 코드는 EPL 표현식을 인식하지 못합니다. Rhino가 EPL 표현에 대해 이야기 할 수 있는지 여부를 조사하는 것은 흥미로울 것입니다.