AS3 - ¿Cómo hacer una carga sincrónica de una llamada asincrónica?

Tengo una función que carga un objeto de usuario de un servicio web de forma asincrónica.

Envuelvo esta llamada de función en otra función y la hago sincrónica.

Por ejemplo:

    private function getUser():User{
            var newUser:User;
            var f:UserFactory = new UserFactory();

            f.GetCurrent(function(u:User):void{
                newUser = u;
            });

            return newUser;
        }

UserFactory.GetCurrent se ve así:

public function GetCurrent(callback:Function):void{ }

Pero entiendo que no hay garantía de que cuando se llama a esta función, ¿nuevo usuario será realmente el nuevo usuario?

¿Cómo se logra este tipo de función de retorno en Flex?

Respuestas a la pregunta(4)

Su respuesta a la pregunta