Как получить значение обещания JavaScript в Java / Nashorn - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь выполнить некоторый код javascript в scala, используя шаблон nashorn / ScriptEngine, вызываемая мной функция javascript возвращает обещание, и давайте предположим, что у меня нет агентства по этому типу возврата.

import javax.script.ScriptEngineManager

val engine = new ScriptEngineManager().getEngineByName("nashorn")

val resp: ScriptObjectMirror = engine.eval("Promise.resolve([1,2,3])")

Я не могу понять, каким образом я могу получить внутреннее значение, вместо этого мне возвращается этот черный ящик ScriptObjectMirror.Все, что я действительно хочу, это вытащить внутреннее значение, то есть в javascript это выглядело бы как

Promise.resolve([1,2,3]).then(function(result) {
    // do something with the result
}

Я думаю, что это как-то связано с тем, что внешний контекст движка не знает, что ему следует ждатьОбещание закончить.

...