服务现在堆栈溢出错误

ServiceNow Stack Overflow Error

本文关键字:栈溢出 错误 堆栈 服务      更新时间:2023-09-26

我正在使用 onChange() 客户端脚本 in Service Now 将数据输入字段后,将字段的输入四舍五入到下一个最高,甚至百分之一。我遇到堆栈溢出消息,

onChange script error: RangeError: Maximum call stack size exceeded function (){var o=i(m,arguments);return l.apply(n,o)}   

在 API 中建议对照newValue检查oldValue,以确保不必要地运行onChange()。 这就是我所拥有的,我似乎无法解决它。感谢您的帮助。

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (newValue === oldValue){
    return;
}else if (isLoading || newValue === '') {
    return;
}else{
    if (newValue) {
        if (newValue != oldValue){
            var round = ((Math.ceil(newValue * 100) /100);
            g_form.setValue('nitrate_0_50', round);
        }
    }
}

您的问题就像您在评论中解释的那样。您有一个字段。更改此字段时,调用onChange函数。这反过来又会执行 som 计算并更改字段的值。这导致了一个新的onChange事件。

您不应该在onChange函数中再次写入该字段。