无法从nashorn java中调用javascript的异步函数

时间:2018-11-13 08:33:47

标签: javascript java nashorn

我想使用nashorn从Java调用如下所示的javascript函数

async function testSample() {    
    for (var i = 0; i < sample.length; i++) {
        await sample[i]();
    }    
}

因此它将执行示例变量1中的所有功能。但是我遇到了以下错误

Expected ; but found function
async function testSample()() {
  ^ in <eval> at line number 8 at column number 6

在nashorn上是否支持异步功能?

有什么解决的办法吗?

1 个答案:

答案 0 :(得分:5)

async在ECMAScript 2017中定义; Nashorn当前仅支持ECMAScript 5.1。

因此,您不能直接从Nashorn调用此代码。您可以尝试使用Promise重写它,或者使用babel之类的东西将其编译到ES5。