【问题标题】:Calling a function that takes a callback as argument using Rhino使用 Rhino 调用将回调作为参数的函数
【发布时间】:2012-12-10 22:39:13
【问题描述】:

如何使用 Rhino 调用以下 sum() 函数(org.mozilla.javascript,而不是 javax.script),将 Java 方法作为回调传递给它(或任何其他允许我在 Java 中接收结果的方式),一旦我有了代表它的 Rhino Function 对象?

function sum(a, b, successHandler) {
    successHandler(a + b);
}

【问题讨论】:

  • 也许你应该return successHandler(a+b);

标签: java javascript rhino


【解决方案1】:

这是我找到的解决方案:

function.call(context, scope, null, new org.mozilla.javascript.Function() {
    @Override
    public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args) {
        System.out.println(args[0]);
    },

    // ...
});

很遗憾org.mozilla.javascript.Function 是一个如此大的接口,但一切似乎都能正常工作,即使所需的方法都没有真正的实现。

但这并不完全优雅。我希望有更好的方法。

【讨论】:

  • 你能解释一下这个的确切实现吗..我有一个javascript函数,执行该函数后想调用java。请建议...自过去两周以来一直在搜索此内容..谢谢
猜你喜欢
  • 1970-01-01
  • 2019-02-22
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 2023-03-08
  • 2021-08-12
相关资源
最近更新 更多