请参阅此代码中:如何停止循环执行,直到DWR方法执行结束这是对循环
for(var k=0;k<pods.length;k++){
var currentQueryList = new Array();
currentQueryList[0]=pods[k].queryname;
console.log("Hello :"+i);
queryBuilderDWRService.getDataForAllPods(currentQueryList, {callback:function(map){
podsDataMap = map;
console.log("Hello"+k+":");
var pod = pods[k];
displayPod(k, pod, false);
}});
}
在这段代码中,for循环调用queryBuilderDWRService.getDataForAllPods()
返回实际数据之前完成,我正用它从数据库中获取数据。
它我试着console.log("Hello"+i);
它打印Hello :1, Hello :2, Hello :3, Helllo :4,
直到数组长度没有数据从数据库,这意味着for循环完成其执行之前比queryBuilderDWRService.getDataForAllPods()
返回。
我需要的是,一旦控制进入for循环,它必须完成queryBuilderDWRService.getDataForAllPods()的执行,然后才能进行下一次迭代。
在此先感谢。
答案取决于如何编写QueryBuilderDWRService。由于getDataForAllPods异步执行,所以它可能有一个信号通过回调,事件触发等完成的方式。 – Egg
@Egg我希望这将是OP代码中的回调函数... – Alnitak