Итак, я думаю, что я все еще не понимаю, в чем заключается ваша проблема, поэтому я просто попытаюсь ответить на нее, рассказав о подходе, который я бы использовал, если бы у меня было три несвязанных вызова для бэкенда.
Я бы сразу их всех уволил. Поскольку внутренние вызовы в Flex всегда асинхронны, они будут возвращаться немедленно. Каждый из этих вызовов будет включать функцию обратного вызова для того, когда возвращается результат. Итак, в псевдо (ish) коде это будет примерно так:
makeRequest1(whenRequest1Finishes);
makeRequest2(whenRequest2Finishes);
makeRequest3(whenRequest3Finishes);
В этом случае makeRequest*
- это метод, который знает, что сервер / механизм должен сделать вызов, и будет вызывать функцию, которую вы определили в каком-то месте, называемом whenRequest*Finishes
.
Предполагая, что теперь, когда в вашем пользовательском интерфейсе есть три различных части, обновляемых отдельно от каждого из этих запросов, я бы заполнил эти области пользовательского интерфейса по мере их поступления. Хотя я бы не заполнил их просто ... Я бы дал пользователю указание, что они прибыли. Это может быть тонкая анимация данных, «летящих», или индикатор ожидания, который исчезает, когда данные появляются. Вместо трех отдельных индикаторов ожидания вы можете создать один индикатор ожидания, который заполняет весь пользовательский интерфейс, который не исчезнет, пока не будут получены все три.
Как бы то ни было, я бы никогда не делал последовательные звонки, если только звонки не зависели друг от друга. Используйте встроенную асинхронность во Flex для своего преимущества и выполняйте все три вызова параллельно.
Это то, что вы ищете ???