Мне неизвестна какая-либо документация, объясняющая это, но я могу подтвердить, что блоки кода выполняются до выполнения асинхронных вызовов или, по крайней мере, до обработки их результата.Если бы это не работало таким образом, вы, например, не всегда могли бы присоединить респондента к токену вызова службы, потому что результат, возможно, уже был обработан.
var token:AsyncToken = myService.someMethod();
token.addResponder(new Responder(resultHandler, faultHandler));
Разработчики издругие платформы находят это странным, так как ожидают, что назначение ответчика будет слишком запоздалым.
Так что, хотя у меня нет официального объяснения технических деталей внутри Flash Player, я могу заверить, что он работаеттаким образом.
Если пользователь делает что-то во время ожидания вызова, новый запрос действительно будет просто добавлен как новый асинхронный вызов.Обратите внимание, что мы не можем реально говорить об очереди, так как нет гарантии, что ответ на первый вызов поступит раньше, чем ответ на второй вызов.Это зависит от того, сколько времени занимают фактические запросы.
Вы можете прекрасно использовать экземпляр HTTPService.
PS : На основании этого мы смогли построить Операционный API в Spring ActionScript.По сути, это API, который позволяет вам выполнять асинхронные процессы единообразным образом, не беспокоясь о деталях фактического асинхронного процесса.
Следующий код выполняет асинхронный процесс и присоединяет к нему обработчик.Это также то, что поначалу озадачивает многих разработчиков по причинам, аналогичным ситуации asyncToken.
var operation:IOperation = doSomeOperation();
operation.addCompleteListener(aCompleteHandler);
operation.addErrorListener(anErrorHandler);