Flex RemoteObject Синхронный вызов - PullRequest
0 голосов
/ 01 октября 2009

В приведенном ниже коде при вызове функции chkAuthentication из другой функции
remoteObj.login (функция входа в мой служебный файл (.php)) вызывается после оставшегося кода в этой функции.
т.е. , loginStatus возвращается из функции перед вызовом функции обработчика результатов loginResult. но мой loginStatus должен быть установлен в функцию loginResult. Кажется, что асинхронное поведение является виновником.
Что я должен сделать, чтобы сначала выполнить функцию loginResult?
Пожалуйста, помогите мне. Спасибо.

    private var loginStatus:Boolean;

     public function chkAuthentication(loginVOObj:LoginVO):String{
                remoteObj.login.addEventListener(ResultEvent.RESULT,loginResult);  
        remoteObj.login(loginVOObj);
        if(loginStatus == true){
            return displayName;
        }
        else{
            return 'fail';
        }
     }

     private function loginResult(result:ResultEvent):void
             {
        if(result.result == null){
            loginStatus=false;
        }else{
            loginStatus=true;

        }

     }

Ответы [ 2 ]

2 голосов
/ 01 октября 2009

Метод chkAuthentication не должен возвращать String, поскольку он асинхронный. Вместо этого просто создайте переменную экземпляра и установите ее значение String в методе loginResult. Затем вы можете использовать привязку или отправить событие для обновления пользовательского интерфейса.

0 голосов
/ 01 октября 2009

Предыдущий ответ верен - вместо того, чтобы зависеть от службы, работающей синхронно, что, помимо проблем с производительностью, является редким случаем в flex, вы должны использовать функцию loginResult для хранения статуса входа в систему в этом объекте или объекте что вы используете для хранения состояния приложения. Затем отобразите его с помощью элемента управления с привязкой к данным:

<mx:label text={userStatus.loginDisplay} />

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