"includes" Javascript 函数在 WSO2 ESB 脚本中介中不起作用
"includes" Javascript Function Not Working in WSO2 ESB script mediator
"includes" 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>
这可能是因为 ESB 中使用的底层 javascript 引擎尚不支持 includes()
功能。底层javascript引擎为mozilla rhino,版本为1.7R4。可能是此版本不支持上述功能 includes()
,因为它包含在 ECMAScript 6 中。
作为替代方法,您可以使用如下所示的 indexOf()
函数。
if (dateFromPayload.toString().indexOf("/") != -1) {
result = false;
}
"includes" 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>
这可能是因为 ESB 中使用的底层 javascript 引擎尚不支持 includes()
功能。底层javascript引擎为mozilla rhino,版本为1.7R4。可能是此版本不支持上述功能 includes()
,因为它包含在 ECMAScript 6 中。
作为替代方法,您可以使用如下所示的 indexOf()
函数。
if (dateFromPayload.toString().indexOf("/") != -1) {
result = false;
}