Проблемы с многозадачностью на Flex

У меня есть метод, который одновременно вызывает две службы из PHP. Из-за многозадачности Flex я думаю, что каждая служба вызывается в отдельном потоке.

Моя проблема: обе службы возвращают массив объектов из базы данных. Но вторая служба будет кормить DataGrid, у которого есть обработчик для каждой записи. Этот обработчик будет сравнивать это с обоих массивов, и когда Flex завершит второй, прежде чем завершит первый, у меня возникнет проблема, потому что обработчик пытается сравнить данные с нулевым объектом (служба PHP еще не ответила).

Есть идеи?

РЕДАКТИРОВАТЬ:

В тот день, когда я опубликовал этот вопрос, какой-то парень подал мне удивительную идею, но, к сожалению, похоже, что он удалил свой пост, я не знаю почему. Я держал его идею в уме и нашел решение, которое соответствовало моему шаблону дизайна его идее.

Он сказал мне поставить флаг, сообщающий, были ли данные уже загружены или нет. Итак, вот что я делаю сейчас: Я звоню в первую службу; Я вызываю вторую службу;

По результатам первой службы я проверяю флаг на второй службе, если это правда, это означает, что она уже была загружена, поэтому я могу просто сохранить свои данные в DataGrid, чтобы обработчик мог называться.Если флаг установлен в false, это означает, что вторые данные еще не загружены, поэтому вместо хранения данных в официальном dataProvider я сохраняю их в _temp DataProvider, который не привязан к dataGrid. В этом случае, когда загружаются вторые данные, первой службе отправляется событие прослушивателя, говорящее ему перехватить _temp dataProvider и скопировать его в официальный dataProvider.

Мне особенно понравилось решение, которое не нарушает шаблон проектирования Table Data Gateway.

Спасибо всем за помощь.

0
задан Marco Aurélio Deleu 29 February 2012 в 16:40
поделиться