我需要从2个XMLHttpRequests生成结果。 如何同时发出请求并等待它们完成?
我有点像......
resp1="";
req1.onreadystatechange=function(){if(this.readyState=4)resp1==this.responseText;}
req2.onreadystatechangefunction(){if(this.readyState=4) finish(this.responseText);}
function finish(resp2){
if (resp1=="") setTimeOut(finish(resp2),200);
else {
... both are done...
}
我还没有测试过,但我认为它会起作用。 有没有更好的办法? 我的代码需要尽可能短而快。
答案 0 :(得分:1)
你不需要计时器。
您需要做的就是检查每个回调是否完成另一个回调,如果是,请致电finish
。
例如:
var resp1 = null, resp2 = null;
req1.onreadystatechange = function() {
if (this.readyState === 4) {
resp1 = this.responseText;
if (resp2 !== null) finish();
}
};
req2.onreadystatechange = function() {
if (this.readyState === 4) {
resp2 = this.responseText;
if (resp1 !== null) finish();
}
};