Свойство .lastresult моего ответчика - PullRequest
0 голосов
/ 23 марта 2011

доброе утро stackoverflow .. У меня проблема ... я хотел зациклить вызов службы, чтобы он мог динамически заполнять мой массив ... это мой код sampple

var i: Number = new Number ();

            {
            for(i=0;i<facilityIDArray.length;i++){
            getEventsFromFacilityIDResult.token = currenteventService.getEventsFromFacilityID(facilityIDArray.getItemAt(i));
            getEventsFromFacilityIDResult.addEventListener(ResultEvent.RESULT,toShowArray);
            }

тогда эта функция вызывается сервисным вызовом

{ публичная функция toShowArray (событие: ResultEvent): пустота {

            var i:Number = new Number();
            var obj:Object = new Object();
            var tempArray:ArrayCollection = new ArrayCollection();
            tempArray = getEventsFromFacilityIDResult.lastResult;

            if(tempArray != null){
                for(i=0;i<tempArray.length;i++){
                obj = tempArray.getItemAt(i);
                obj.id = int(localIDArray.length -1);

                showArray.addItem(obj);
                }
            }
        }

} ..

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

1 Ответ

1 голос
/ 24 марта 2011

Вы добавляете несколько прослушивателей к этому одному объекту HTTPService каждый раз, когда результат возвращается из вызова для отправки по указанному HTTPService, каждый из этих прослушивателей будет вызываться, поэтому toShowArray будет вызываться несколько раз (каждый раз для каждого отдельного запроса). ). В зависимости от того, где инициализирован showArray, может случиться так, что вы повторно создаете его экземпляр между ответными вызовами. Поместите точку останова в метод toShowArray, сколько раз он вызывается (пуст ли showArray в каждом вызове, почему?), Это не похоже на хороший метод. Почему сервис просто не возвращает полный набор вместо того, чтобы делать кучу отдельных запросов и пытаться обработать каждый ответ не по порядку (поскольку вызовы Asynch, зная, какой из них вернется, когда это невозможно, более того, браузеры и ОС ограничивают количество открытых соединений TCP / IP, поэтому во многих случаях у вас будет только 2 одновременных запроса от клиента). Кроме того, когда вы вставляете код в stackoverflow, вставьте полный код, затем выделите весь код (используйте мышь или клавиатуру, чтобы выделить его все) и нажмите кнопку кода над текстовой областью, это немного облегчит вам задачу перехода к ответ. Объясните, какие части вы составили, которые не включены в код, IE getEventsFromFacilityIDResult Я должен предположить, основываясь на слушателях и свойствах, на которые вы ссылаетесь, какой это тип объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...