2017-03-03 1 views
0

Wie kann ich die Var-Antwort in der Funktion socket.onmessage einstellen. Die Var-Antwort ist nicht definiert, aber ich hatte in der Funktion festgelegt. Aber ich brauche die Antwortvariable wegen des Rückrufs am Ende meiner Funktion.Variable in Schließung setzen

function getVariables_Groups(_callback) { 
      var self = this; 
      var response = {}; 

      socket.onmessage = function(evt) { 
       json = JSON.parse(JSON.parse(evt.data)); 

       var statistics = {}; 
       var groups = json.args; 
       statistics.action = "internal_dashboard_statistics"; 

       if(groups[0] == "notfound") { 
        statistics.args[0] = "notfound"; 

        loadVariable("dashboard.htm", statistics); 
       } else { 
        statistics.args = []; 

        for(var i = 0; i < json.args.length; i++) { 
         statistics.args[i] = {}; 
         statistics.args[i].name = groups[i]; 
        } 

        console.log(statistics); 
        self.response = statistics; 
       } 
      } 
      console.log(response); 

      _callback(response); 

     } 
+1

Willkommen in der wunderbaren Welt von ** async **! Das kannst du nicht tun. – SLaks

Antwort

1

Sie können eine Variable nicht verwenden, bevor sie festgelegt wurde.

Sie müssen den Rückruf nur aufrufen, wenn Sie tatsächlich einen Wert haben.