我想用我的javascript代碼塊來完成以下操作。需要Extjs函數幫助返回未定義的結果
- 處理所有當前和新的設備請求,檢測,加密,解密等
- 將結果返回給調用方法
問題
- 我怎樣才能改善現有的代碼,並擺脫了JavaScript的嚴格的警告:匿名函數並不總是返回一個值。
- 什麼是調用我的方法的正確方法?
任何幫助是極大的讚賞
謝謝!
。由此代碼:
這是我如何調用當前方法
//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);
}
}
太棒了!感謝您花時間回答我的問題。在將問題標記爲已回答之前,我會執行更改並測試代碼。再一次,謝謝! – QCar 2010-08-05 08:52:12
發表你用來調用'detect()'...的代碼你確定'function(){...}'在方括號內作爲第二個參數嗎? – bobince 2010-08-05 09:58:58
謝謝!已解決我忘了將函數()放在括號中。 我得到我想要的輸出:) – QCar 2010-08-05 10:07:46