Domanda

Sto cercando di restituire un valore di stringa da un metodo all'interno del mio tag di script, tuttavia restituisce sempre un oggetto e non riesco a ottenere il valore di stringa.

Ecco il codice:

recupero l'oggetto restituito da una chiamata al servizio 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;
}

l'avviso stampa bene il nome, tuttavia quando provo ad usare il valore nel mio prossimo metodo (che chiama il servizio web che chiama getNameResults) ottengo il tag oggetto

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

tuttavia il valore restituito qui è [object AsyncToken]

qualche idea?

È stato utile?

Soluzione

Stai impostando il risultato di getRoomZoneInfo () sul sito variabile, ma lo stai lanciando come String. getRoomZoneInfo sta restituendo un oggetto, e poiché la variabile in cui lo stai attaccando è una stringa è come chiamare .toString () sull'oggetto, che produce [object < code> AsyncToken ].

Fondamentalmente se getRoomZoneInfo è una chiamata al servizio web, non puoi ottenere le informazioni che stai cercando qui, devi aspettare che il risultato ritorni e ottenere la stringa che stai cercando lì. Ha senso?

Altri suggerimenti

Il tuo metodo getInfo () non sta chiamando getNameResults (). Sta chiamando getRoomZoneInfo (). Non so cosa faccia quel metodo, ma suppongo che stia restituendo un oggetto, non una stringa.

Ricevo [ ObjectAsyncToken ] in una variabile anziché in stringa, mentre sto recuperando i dati dal database

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

funzione database:

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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top