Javascript Error: SyntaxError: Syntax Error in eval() function
Javascript Error: SyntaxError: Syntax Error in eval() function
我已经将下面的这段字符串存储在变量中 javascript_string_above:
function run(hideBtn, list) {
if(hideBtn) {
return list.filter(function(x) { return x.period == 1; });
}
else {
return list;
}
}
run(hideBtn, list);
上面的字符串被传递给 eval 函数,如下所示:
const hideBtn = true;
const list = this.list; //assuming this list has values in it.
const resultList = eval(javascript_string_above);
评估后,我在控制台日志中收到语法错误。这是错误:
Error: Uncaught (in promise): SyntaxError: Syntax error
SyntaxError: Syntax error
at PaymentScheduleComponent.prototype.setRecord (eval code:136:17)
at Anonymous function (eval code:85:17)
at SafeSubscriber.prototype.__tryOrUnsub (eval code:238:13)
at SafeSubscriber.prototype.next (eval code:185:17)
at Subscriber.prototype._next (eval code:125:9)
at Subscriber.prototype.next (eval code:89:13)
at FilterSubscriber.prototype._next (eval code:89:13)
at Subscriber.prototype.next (eval code:89:13)
at TakeWhileSubscriber.prototype.nextOrComplete (eval code:84:13)
at TakeWhileSubscriber.prototype._next (eval code:79:9)
{
[functions]: ,
__proto__: { },
description: "Uncaught (in promise): SyntaxError: Syntax error
SyntaxError: Syntax error
at PaymentScheduleComponent.prototype.setRecord (eval code:136:17)
at Anonymous function (eval code:85:17)
at SafeSubscriber.prototype.__tryOrUnsub (eval code:238:13)
at SafeSubscriber.prototype.next (eval code:185:17)
at Subscriber.prototype._next (eval code:125:9)
at Subscriber.prototype.next (eval code:89:13)
at FilterSubscriber.prototype._next (eval code:89:13)
at Subscriber.prototype.next (eval code:89:13)
at TakeWhileSubscriber.prototype.nextOrComplete (eval code:84:13)
at TakeWhileSubscriber.prototype._next (eval code:79:9)",
message: "Uncaught (in promise): SyntaxError: Syntax error
SyntaxError: Syntax error
at PaymentScheduleComponent.prototype.setRecord (eval code:136:17)
at Anonymous function (eval code:85:17)
at SafeSubscriber.prototype.__tryOrUnsub (eval code:238:13)
at SafeSubscriber.prototype.next (eval code:185:17)
at Subscriber.prototype._next (eval code:125:9)
at Subscriber.prototype.next (eval code:89:13)
at FilterSubscriber.prototype._next (eval code:89:13)
at Subscriber.prototype.next (eval code:89:13)
at TakeWhileSubscriber.prototype.nextOrComplete (eval code:84:13)
at TakeWhileSubscriber.prototype._next (eval code:79:9)",
name: "Error",
promise: { },
rejection: { },
stack: "Error: Uncaught (in promise): SyntaxError: Syntax error
SyntaxError: Syntax error
at PaymentScheduleComponent.prototype.setRecord (eval code:136:17)
at Anonymous function (eval code:85:17)
at SafeSubscriber.prototype.__tryOrUnsub (eval code:238:13)
at SafeSubscriber.prototype.next (eval code:185:17)
at Subscriber.prototype._next (eval code:125:9)
at Subscriber.prototype.next (eval code:89:13)
at FilterSubscriber.prototype._next (eval code:89:13)
at Subscriber.prototype.next (eval code:89:13)
at TakeWhileSubscriber.prototype.nextOrComplete (eval code:84:13)
at TakeWhileSubscriber.prototype._next (eval code:79:9)
at resolvePromise (eval code:824:25)
at ZoneAwarePromise (eval code:893:17)
at Anonymous function (eval code:38:5)
at Anonymous function (eval code:176:43)
at SafeSubscriber.prototype.__tryOrUnsub (eval code:238:13)
at SafeSubscriber.prototype.next (eval code:185:17)
at Subscriber.prototype._next (eval code:125:9)
at Subscriber.prototype.next (eval ",
Symbol(observable)_h.143sf9as4rn: undefined,
Symbol(rxSubscriber)_g.143sf9as4rn: undefined,
task: { },
zone: { }
}
请帮忙,这个问题困扰我很久了。 这个只在IE11中遇到
我找到了根本原因。 filter()方法里面的函数翻译成lambada表达式:
来自
list.filter(function(x) { return x.period == 1; });
到
list.filter(x => x.period == 1);
IE11 不支持箭头函数“=>”从而引发语法错误。
我已经将下面的这段字符串存储在变量中 javascript_string_above:
function run(hideBtn, list) {
if(hideBtn) {
return list.filter(function(x) { return x.period == 1; });
}
else {
return list;
}
}
run(hideBtn, list);
上面的字符串被传递给 eval 函数,如下所示:
const hideBtn = true;
const list = this.list; //assuming this list has values in it.
const resultList = eval(javascript_string_above);
评估后,我在控制台日志中收到语法错误。这是错误:
Error: Uncaught (in promise): SyntaxError: Syntax error
SyntaxError: Syntax error
at PaymentScheduleComponent.prototype.setRecord (eval code:136:17)
at Anonymous function (eval code:85:17)
at SafeSubscriber.prototype.__tryOrUnsub (eval code:238:13)
at SafeSubscriber.prototype.next (eval code:185:17)
at Subscriber.prototype._next (eval code:125:9)
at Subscriber.prototype.next (eval code:89:13)
at FilterSubscriber.prototype._next (eval code:89:13)
at Subscriber.prototype.next (eval code:89:13)
at TakeWhileSubscriber.prototype.nextOrComplete (eval code:84:13)
at TakeWhileSubscriber.prototype._next (eval code:79:9)
{
[functions]: ,
__proto__: { },
description: "Uncaught (in promise): SyntaxError: Syntax error
SyntaxError: Syntax error
at PaymentScheduleComponent.prototype.setRecord (eval code:136:17)
at Anonymous function (eval code:85:17)
at SafeSubscriber.prototype.__tryOrUnsub (eval code:238:13)
at SafeSubscriber.prototype.next (eval code:185:17)
at Subscriber.prototype._next (eval code:125:9)
at Subscriber.prototype.next (eval code:89:13)
at FilterSubscriber.prototype._next (eval code:89:13)
at Subscriber.prototype.next (eval code:89:13)
at TakeWhileSubscriber.prototype.nextOrComplete (eval code:84:13)
at TakeWhileSubscriber.prototype._next (eval code:79:9)",
message: "Uncaught (in promise): SyntaxError: Syntax error
SyntaxError: Syntax error
at PaymentScheduleComponent.prototype.setRecord (eval code:136:17)
at Anonymous function (eval code:85:17)
at SafeSubscriber.prototype.__tryOrUnsub (eval code:238:13)
at SafeSubscriber.prototype.next (eval code:185:17)
at Subscriber.prototype._next (eval code:125:9)
at Subscriber.prototype.next (eval code:89:13)
at FilterSubscriber.prototype._next (eval code:89:13)
at Subscriber.prototype.next (eval code:89:13)
at TakeWhileSubscriber.prototype.nextOrComplete (eval code:84:13)
at TakeWhileSubscriber.prototype._next (eval code:79:9)",
name: "Error",
promise: { },
rejection: { },
stack: "Error: Uncaught (in promise): SyntaxError: Syntax error
SyntaxError: Syntax error
at PaymentScheduleComponent.prototype.setRecord (eval code:136:17)
at Anonymous function (eval code:85:17)
at SafeSubscriber.prototype.__tryOrUnsub (eval code:238:13)
at SafeSubscriber.prototype.next (eval code:185:17)
at Subscriber.prototype._next (eval code:125:9)
at Subscriber.prototype.next (eval code:89:13)
at FilterSubscriber.prototype._next (eval code:89:13)
at Subscriber.prototype.next (eval code:89:13)
at TakeWhileSubscriber.prototype.nextOrComplete (eval code:84:13)
at TakeWhileSubscriber.prototype._next (eval code:79:9)
at resolvePromise (eval code:824:25)
at ZoneAwarePromise (eval code:893:17)
at Anonymous function (eval code:38:5)
at Anonymous function (eval code:176:43)
at SafeSubscriber.prototype.__tryOrUnsub (eval code:238:13)
at SafeSubscriber.prototype.next (eval code:185:17)
at Subscriber.prototype._next (eval code:125:9)
at Subscriber.prototype.next (eval ",
Symbol(observable)_h.143sf9as4rn: undefined,
Symbol(rxSubscriber)_g.143sf9as4rn: undefined,
task: { },
zone: { }
}
请帮忙,这个问题困扰我很久了。 这个只在IE11中遇到
我找到了根本原因。 filter()方法里面的函数翻译成lambada表达式:
来自
list.filter(function(x) { return x.period == 1; });
到
list.filter(x => x.period == 1);
IE11 不支持箭头函数“=>”从而引发语法错误。