«включает» функцию JavaScript, не работающую в посреднике сценариев WSO2 ESB - PullRequest
0 голосов
/ 28 сентября 2018

"включает" функцию Javascript, не работающую в посреднике сценариев WSO2 ESB.Я пробовал это с помощью WSO2ESB.

<script language="js"><![CDATA[        
                var dateFromPayload = mc.getProperty("dateFrom");
                var dateToPayload = mc.getProperty("dateTo")                

                function compareDates() {
                    var result = false;
                    print("hiiiii");
                    print(dateFromPayload.toString());
                    print(dateToPayload.toString());
                    var test= "dddd";
                    if (dateFromPayload.toString().includes("/") || dateToPayload.toString().includes("/")) {
                        result = false;
                    } else {

                        var dateFrom = new Date(dateFromPayload);
                        var dateTo = new Date(dateToPayload);
                        result = dateFrom.getTime() <= dateTo.getTime();
                         if (!result) {
                            result = false;
                    }
                }
                mc.setProperty("fromToDateValidated", result);
                }; compareDates()]]></script>

1 Ответ

0 голосов
/ 28 сентября 2018

Это может быть связано с тем, что базовый механизм JavaScript, используемый в ESB, еще не поддерживает функцию includes().Основным движком javascript является Mozilla Rhino, а версия - 1.7R4.Возможно, эта версия не поддерживает вышеуказанную функцию includes(), поскольку она включена в ECMAScript 6.

В качестве альтернативного подхода вы можете использовать функцию indexOf(), как показано ниже.

if (dateFromPayload.toString().indexOf("/") != -1) {
    result = false;
}
...