将javascript回调作为java方法参数传递

将javascript回调作为java方法参数传递,javascript,java,gwt,Javascript,Java,Gwt,在我的GWT应用程序中,我有第三方react模块 我需要将成功/失败回调从javascript传递到java,并在java中填充数据 JS部分 function() { var reactCallback = { success: function() { console.log('success!'); }, error: function() {

在我的GWT应用程序中,我有第三方react模块 我需要将成功/失败回调从javascript传递到java,并在java中填充数据

JS部分

function() {
        var reactCallback = {
            success: function() {
                console.log('success!');
            },
            error: function() {
                console.log('error!');
            }
        };
        window.reactRpcService(reactCallback);
    }
JAVA GWT部件

 public static native void reactRPCService(ReactRPCServiceAccessor reactRpc)/*-{
    $wnd.reactRpcService = function(callback){
        reactRpc.@com.myproject.ReactRPCServiceAccessor::dispatchRPCRequest(???)(callback);
    }
}-*/;


    private void dispatchRPCRequest(???) {

    }
计划是调用java GWT RPC函数规范化数据,并通过回调将其发送回
javascript
我本来想用Java将其作为
JavascriptObject
传递,但不知道这是否是一个好方法


有什么想法吗?

事实上,我发现根据javadocs,
JavascriptObject
可以
从Java返回JSNI,成为原始对象,并且可以按预期在JavaScript中访问。

所以在我的原生函数中,我添加了如下签名

public static native void setupNativeRactRPCServiceCalls(ReactRPCServiceAccessor reactRpc)/*-{
    $wnd.reactRpcService = function(callback){
        reactRpc.@com.myproject.ReactRPCServiceAccessor::dispatchRPCRequest(Lcom/google/gwt/core/client/JavaScriptObject;)(callback);
    }
}-*/;

 private void dispatchRPCRequest(final JavaScriptObject callback ) {
...retrieve JSON data
}
然后在从服务器检索数据后,我将其传递回javascript

   public static native void reactDataRedirector(JavaScriptObject callbackObject, String jsonData)/*-{
        callbackObject.success(jsonData);
}-*/;

你能具体说明你想做什么吗。应该转移什么?Java端会发生什么?难道不可能只调用Java函数、业务逻辑和根据结果调用不同的JS方法吗?