Pregunta

Estoy tratando de devolver un valor de cadena de un método dentro de mi etiqueta de script, sin embargo, siempre devuelve un objeto y no puedo obtener el valor de cadena.

Aquí está el código:

recupero el objeto devuelto de una llamada de servicio web ;;

    private function getNameResults(e:ResultEvent):String{
     var name:Array = new Array(e.result);
     var site:String = site_names[0].toString();
     Alert.show("site - " +site);
     return site;
}

la alerta imprime bien el nombre, sin embargo, cuando trato de usar el valor en mi próximo método (que llama al servicio web que llama a getNameResults) obtengo la etiqueta de objeto

private function getInfo(roomName:String):String{
    var site:String =userRequest.getRoomZoneInfo(roomName);
    return site;
}

sin embargo, el valor devuelto aquí es [object AsyncToken]

alguna idea?

¿Fue útil?

Solución

Está configurando el resultado de getRoomZoneInfo () en el sitio variable, pero lo está convirtiendo en una Cadena. getRoomZoneInfo está devolviendo un objeto, y debido a que la variable en la que lo está pegando es una cadena, es como llamar a .toString () en el objeto, lo que produce el [objeto < code> AsyncToken ].

Básicamente, si getRoomZoneInfo es una llamada de servicio web, no puede obtener la información que está buscando aquí, debe esperar hasta que el resultado regrese y obtener la cadena que está buscando allí. ¿Tiene sentido?

Otros consejos

Su método getInfo () no está llamando a getNameResults (). Está llamando a getRoomZoneInfo (). No sé qué hace ese método, pero supongo que está devolviendo un Objeto, no una Cadena.

Recibo [ ObjectAsyncToken ] en la variable a en lugar de cadena, ya que estoy recuperando datos de la base de datos

private function init():void
{
   ro.initView();
   var a:String=String(ro.getID());
}

función de base de datos:

public void initView()
{
  try
  {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection conn = DriverManager.getConnection("jdbc:odbc:alarmdsn"," "," ");
    Statement s = conn.createStatement();
    ResultSet r = s.executeQuery("select * from alarm");
    while(r.next()) {
      a = r.getString(1);             
    }
  }
  catch(Exception e) {}
}

public String getID() {
   return a;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top