如何在GWT中异步调用后等待一段时间

如何在GWT中异步调用后等待一段时间,gwt,gwt-rpc,Gwt,Gwt Rpc,在我的代码中,我正在进行异步调用以进行验证。根据验证的返回值,我需要执行一些行。 但我无法将这些行放在Async=public void success(Boolean-valid)的回调方法中 因为其中一行是super.onDrop(context),它是另一个类的方法,不能在异步回调方法中调用 请看下面的一行。我需要超级。onDrop(上下文)将在异步调用完成后执行 onDropValidation(stepTypeFactory,新的AsyncCallbackModal(null){ 公

在我的代码中,我正在进行异步调用以进行验证。根据验证的返回值,我需要执行一些行。 但我无法将这些行放在Async=public void success(Boolean-valid)的回调方法中

因为其中一行是super.onDrop(context),它是另一个类的方法,不能在异步回调方法中调用

请看下面的一行。我需要超级。onDrop(上下文)将在异步调用完成后执行


onDropValidation(stepTypeFactory,新的AsyncCallbackModal(null){
公共作废成功(布尔有效){
if(valid==Boolean.TRUE){
//super.onDrop(上下文);
}
};
});

//情况是这样的 super.onDrop(上下文)

有没有办法,我会告诉gwt在执行super.onDrop(上下文)之前等待1到2秒。现在发生的事情是, super.onDrop(上下文)在回调方法完成之前执行。

您可以执行以下操作:

stepTypeFactory.onDropValidation(stepTypeFactory,new AsyncCallbackModal(null) {
    public void success(Boolean valid) {
        if(valid==Boolean.TRUE){
            drop();
        }
    };
});

private void drop() {
   super.onDrop(context);
}

另一种解决方案是,如Thomas Broyer在评论中提到的:

stepTypeFactory.onDropValidation(stepTypeFactory,new  AsyncCallbackModal(null) {
    public void success(Boolean valid) {
       if(valid==Boolean.TRUE){
       ContainingClass.super.onDrop(context);
       }
   };
});
Eclipse在使用代码完成时不建议使用此解决方案,但它是有效的


另外,我可能会重新考虑您的设计,因为当您有许多连接/耦合类的回调时(根据经验),它会变得非常棘手。但这只是一个简单的想法,我既不知道你的项目大小,也不知道你的设计。

它对我有用。它完全满足了我的要求只是想知道:你不能使用一个合格的
超级
<代码>ContainingClass.super.onDrop(上下文)