当我写这个 Dart 代码时:
for(int i=0;i<nbAleas;i++){
HttpRequest request=new HttpRequest();
// end of request event
request.onReadyStateChange.listen((_) {
if (request.readyState == HttpRequest.DONE &&
(request.status == 200 || request.status == 0)) {
handleResponse(request.responseText);
}
});
// error event
request.onError.listen((Object error)=>handleError(error));
// method and url
request.open("GET", urlServiceRest);
// send the request
request.send();
}
请求只发送一次。我在服务器上验证了它。如果我这样修改开口:
request.open("GET", urlServiceRest, async:false);
有用。为什么请求应该是同步的?
此外,上述请求是针对具有相同参数的相同 URL 发出的,例如“localhost:8080/random/10/20”。如果我向该 URL 发送异步请求,则如上所述仅发送一个。如果对于第二个请求,我更改了一些参数“localhost:8080/random/11/21”,则发送了两个异步请求。
谁能解释这种奇怪的行为?提前致谢。