异步调用后如何在 GWT 中等待一段时间
How to make wait some time in GWT after the Async call
在我的代码中,我正在进行异步调用以进行验证。根据验证的 return 值,我需要执行一些行。
但是我无法将这些行放在 Async = public void success(Boolean valid).
的回调方法中
因为其中一行是 super.onDrop(context),这是另一个 class 的方法,无法在异步回调方法中调用。
请看下面一行。我需要 super.onDrop(context) 将在异步调用完成后执行。
stepTypeFactory.onDropValidation(stepTypeFactory,new AsyncCallbackModal(null){
public无效成功(布尔有效){
如果(有效==Boolean.TRUE){
//super.onDrop(上下文);
}
};
});</p>
<p>//条件在这里
super.onDrop(上下文);</p>
<p>
有什么办法吗,我会告诉 gwt 在执行 super.onDrop(context) 之前等待 1 或 2 秒。现在发生的事情是,
super.onDrop(context) 在回调方法完成之前执行。
你可以这样做:
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 在使用代码完成时不建议此解决方案,但它有效。
此外,我可能会重新考虑您的设计,因为当您有许多 connecting/coupling 类 的回调时,它会变得非常棘手(根据经验)。但这只是一个快速的想法,我不知道你的项目的大小和设计。
在我的代码中,我正在进行异步调用以进行验证。根据验证的 return 值,我需要执行一些行。 但是我无法将这些行放在 Async = public void success(Boolean valid).
的回调方法中因为其中一行是 super.onDrop(context),这是另一个 class 的方法,无法在异步回调方法中调用。
请看下面一行。我需要 super.onDrop(context) 将在异步调用完成后执行。
stepTypeFactory.onDropValidation(stepTypeFactory,new AsyncCallbackModal(null){
public无效成功(布尔有效){
如果(有效==Boolean.TRUE){
//super.onDrop(上下文);
}
};
});</p>
<p>//条件在这里
super.onDrop(上下文);</p>
<p>
有什么办法吗,我会告诉 gwt 在执行 super.onDrop(context) 之前等待 1 或 2 秒。现在发生的事情是, super.onDrop(context) 在回调方法完成之前执行。
你可以这样做:
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 在使用代码完成时不建议此解决方案,但它有效。
此外,我可能会重新考虑您的设计,因为当您有许多 connecting/coupling 类 的回调时,它会变得非常棘手(根据经验)。但这只是一个快速的想法,我不知道你的项目的大小和设计。