Если это возможно, я настоятельно рекомендую перезапустить ваши удаленные службы, чтобы вернуть все необходимые данные одним махом.
Но, если вы не считаете, что это возможно или практично по какой-либо причине, я быРекомендую сделать какой-нибудь тип удаленной цепочки вызовов.
Добавьте все «удаленные вызовы», которые вы хотите сделать в массиве.Позвони первому.В обработчике результатов обработайте результаты, а затем вытолкните следующий и вызовите его.
Мне немного непонятно из вашего примера кода, когда вы вызываете удаленный вызов, но я предполагаю, что это часть метода getFooCountForType.Концептуально я бы сделал что-то вроде этого.Определите массив вызовов:
public var callsToMake : Array = new Array();
кешируйте текущий процесс:
public var fooType : FooType;
Выполните цикл и сохраните результаты:
for each (var fooType : FooType in getFooTypes()) {
callsToMake.push(fooType);
// based on your code sample I'm unclear if adding the fooTypes to itemTypes is best done here or in the result handler
itemTypes.addItem(fooType);
}
Затем вызовите удаленный обработчик и сохраните обрабатываемый файл:
fooType = callsToMake.pop();
getFooCountForType(fooTypeToProcess);
В обработчике результатов сделайте что-то вроде этого:
// process results, possibly by setting
fooType.fooCount = results.someResult;
и снова вызовите удаленный метод:
fooType = callsToMake.pop();
getFooCountForType(fooTypeToProcess);