我想用我的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