У меня есть метод, который вызывает два сервиса из PHP одновременно. Благодаря многозадачным возможностям Flex я считаю, что каждый сервис вызывается в отдельном потоке.
Моя проблема: оба сервиса возвращают массив объектов из базы данных. Но второй сервис будет передавать DataGrid, который имеет обработчик для каждой записи. Этот обработчик сравнивает его как с массивами, так и когда Flex заканчивает второй до завершения первого, у меня есть проблема, потому что обработчик пытается сравнить данные с нулевым объектом (служба PHP еще не ответила).
Есть идеи?
EDIT:
В день, когда я опубликовал этот вопрос, какой-то парень дал мне удивительную идею, но, к сожалению, похоже, что он удалил свой пост, я не знаю почему.
Я запомнил его идею и нашел решение, которое соответствует моему шаблону дизайна с его идеей.
Он сказал мне поставить флажок, сообщающий, загружены ли уже данные или нет.
Вот что я делаю сейчас:
Я звоню в первую службу;
Я звоню во вторую службу;
По результату первого сервиса я проверяю флаг на втором сервисе, если это правда, это означает, что он уже загружен, поэтому я могу просто сохранить свои данные в DataGrid, чтобы можно было вызывать обработчик.
Если флаг имеет значение false, это означает, что вторые данные еще не были загружены, поэтому вместо хранения данных в официальном dataProvider я сохраняю их на _temp DataProvider, который не связан с dataGrid. В этом случае, когда загружаются вторые данные, событие слушателя отправляется первому сервису, сообщая ему, что нужно перехватить _temp dataProvider и скопировать его в официальный dataProvider.
В частности, мне понравилось решение, и оно не нарушает шаблон проектирования шлюза табличных данных.
Спасибо всем за помощь.