簡體   English   中英

使用GWT JsInterop的Javascript Promise對象

[英]Javascript Promise object with GWT JsInterop

我有這個代碼,我想用於init()第三方Javascript庫:

@JsType(namespace = JsPackage.GLOBAL, name = "Kinvey", isNative = true)
public class Kinvey {
    public String appKey;
    public String appSecret;
    public static native void init();
}

問題是init函數返回一個Javascript Promise對象, GWT如何使用JsInterop處理這個對象?

var promise = Kinvey.init({
    appKey    : 'your_app_key',
    appSecret : 'your_app_secret'
});
promise.then(function(activeUser) {
    ...
}, function(error) {
    ...
});

這個例子用於從GWT代碼返回JS promises,但你可以根據你的場景調整它,它只是用它的Java對應類包裝Promise Javascript類,同時聲明then()catch()方法:

@JsType(isNative = true, namespace = JsPackage.GLOBAL)
public class Promise {

  @JsFunction
  public interface FunctionParam {
      void exec(Object o);
  }

  @JsFunction
  public interface ConstructorParam {
      void exec(FunctionParam resolve, FunctionParam reject);
  }

  @JsConstructor
  public Promise(ConstructorParam parameters) {
  }

  public Promise then(FunctionParam f) { }

  public Promise catch(FunctionParam f) { }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM