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

"включает" функцию Javascript, не работающую в посреднике сценариев WSO2ESB. Я пробовал это с помощью 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 ответ

Решение

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

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

if (dateFromPayload.toString().indexOf("/") != -1) {
    result = false;
}
Другие вопросы по тегам