无法从 nashorn java 调用脚本的异步函数 java

Cannot call javascript's async functions from nashorn java

我想使用 nashorn

从 java 调用如下的 javascript 函数
async function testSample() {    
    for (var i = 0; i < sample.length; i++) {
        await sample[i]();
    }    
}

因此它将执行示例变量l中的所有函数。但是我收到以下错误

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

nashorn 是否支持异步函数?

是否有解决此问题的方法?

async 在 ECMAScript 2017 中定义; Nashorn 目前只支持 ECMAScript 5.1。

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