Brauchen Sie Hilfe mit Extjs-Funktion die Rückgabe undefiniert Ergebnisse

Ich will im folgenden mit meinem javascript-codeblock.

  1. Verarbeiten alle aktuellen und neuen device-requests, dh. erkennen,verschlüsseln,entschlüsseln,usw.
  2. Das Ergebnis an die aufrufende Methode

Fragen

  1. Wie kann ich den vorhandenen code und loszuwerden des javascript strict-Warnung:anonym-Funktion nicht immer einen Wert zurück.
  2. Was ist der richtige Weg, der Aufruf meiner Methode?

Jede Hilfe wird sehr geschätzt

Dank!

Hiermit den code:

Dies ist, wie rufe ich die Methode, die derzeit

//Contents of SmEditor.js
var response = Ext.decode(Prometheus.DeviceRequestHelper.detect(request_id));  


//contents of Sm.js
Ext.ns('myApp') 
myApp.DeviceRequestHelper = {  
    detect:function(request_id){  
        var task = function(){  
        Ext.Ajax.request({  
            url: 'device_requests.php',  
            params:{  
                action:'get_device', //in php  
                'request_id':request_id  
                },  
            timeout:30000, //30 seconds  
            success:function(response){//serverside response  
                var result = Ext.decode(response.responseText); //convert to js objects  
                if(result.success == true){//device was detected  
                    cons.log('success,device was detected');  
                    cons.log(result);  
                    Ext.TaskMgr.stop(runTask);  
                    return Ext.encode(result); //javascript strict warning  
                }else{  
                    if(runTask.taskRunCount >= 10){  
                        //retry limit exceeded  
                        Ext.Msg.show({  
                            title:'Server Failure',  
                            msg:"Detection Failed,Unable to detect device",  
                            icon: Ext.MessageBox.ERROR,  
                            buttons: Ext.Msg.OK  
                        });  
                        Ext.MessageBox.getDialog().getEl().setStyle('z-index','80000');  
                        Ext.TaskMgr.stop(runTask);  
                    }  
                }  
            },  
            failure:function(response){  
                Ext.TaskMgr.stop(runTask);  
                Ext.Msg.show({  
                    title:'Server Failure',  
                    msg:"Failed, server communication error",  
                    icon: Ext.MessageBox.ERROR,  
                    buttons: Ext.Msg.OK  
                });  
                Ext.MessageBox.getDialog().getEl().setStyle('z-index','80000');  
            }  
        })  
        }
        var runTask = {  
            run: task,  
            interval:2000,  
            repeat:10  
            };  
        Ext.TaskMgr.start(runTask);  
    }  
}    
InformationsquelleAutor QCar | 2010-08-05
Schreibe einen Kommentar