打破了或循环GWT回调响应(Breaking for or loop GWT callback re

2019-10-18 05:38发布

我想打破在 GWT 循环 回调的执行方法应对

例如,

for (int idx = 0; idx < recordList.getLength(); idx++) {  //Starting ABC FOR LOOP
    ABCDMI.addData(recordList.get(idx), 
                   new DSCallback() {       
                       public void execute(DSResponse response, Object rawData, DSRequest request) {      
                            if(response.getAttribute("UnSuccess") != null && !response.getAttribute("UnSuccess").equalsIgnoreCase("")) {    
                                 break;  //I want to break ABC FOR LOOP here.   
                            }
                   }
}

任何人可以帮助我在这?

Answer 1:

当你调用一个异步方法,你不知道它需要多长时间。 在你的例子所有这些电话将在几乎同一时刻被发送,但响应会在未来任何时间,所以顺序是不能保证。

的,当然,你不能打破循环回调里面,但你可以处理你的回调调用异步方法从它每次一个呼叫完成内环路。

这个例子应该在你的情况下工作,并且所有的回调,会按顺序执行。

DSCallback myCallBack = new DSCallback() {
  int idx = 0; 
  int length = recordList.getLength();

  public void execute(DSResponse response, Object rawData, DSRequest request) {
    if (++idx < length 
          && (response.getAttribute("UnSuccess") == null 
            || !response.getAttribute("UnSuccess").equalsIgnoreCase(""))) {
      ABCDMI.addData(recordList.get(idx), this);
    }
  }
};

ABCDMI.addData(recordList.get(0), myCallBack);


文章来源: Breaking for or loop GWT callback response
标签: gwt smartgwt