代码之家  ›  专栏  ›  技术社区  ›  Julio Faerman

GWT JSNI是否支持回调?

  •  18
  • Julio Faerman  · 技术社区  · 14 年前

    我正在构建一个使用Web SQL本地存储的GWT应用程序( http://dev.w3.org/html5/webdatabase/ ) 问题是Web SQL API使用回调函数作为 争论。

    有可能将“Java”回调传递给JSNI吗?

    1 回复  |  直到 9 年前
        1
  •  21
  •   Jason Hall    12 年前

    是的,的确如此:

    private static native void doThingWithCallback() /*-{
      var self = this;
      var callbackFn = $entry(function(val) {
        self.@com.your.package.AClass.aMethod(Ljava/lang/String;)(val);
      });
      $wnd.someApiThatTakesACallback(callbackFn);
    }-*/;
    

    要记住两件事:

    1. $entry() 提醒GWT在使用调试器时跟踪代码。
    2. var self = this 保留对的引用 this 在函数内部——否则 将是函数本身…