Подтвердить что ты не робот

Поддерживает ли GWT JSNI обратные вызовы?

Я создаю приложение GWT, использующее локальное хранилище Web SQL ( http://dev.w3.org/html5/webdatabase/). Проблема заключается в том, что API веб-SQL использует функции обратного вызова как Аргументы.

Можно ли передавать "Java" обратные вызовы в JSNI?

4b9b3361

Ответ 1

Да, это делает:

private static native void doThingWithCallback() /*-{
  var self = this;
  var callbackFn = $entry(function(val) {
    [email protected](Ljava/lang/String;)(val);
  });
  $wnd.someApiThatTakesACallback(callbackFn);
}-*/;

Две вещи, которые нужно запомнить:

  • $entry() напоминает GWT, чтобы отслеживать код при использовании отладчика.
  • var self = this хранит ссылку на this внутри функции - иначе this будет самой функцией...