【发布时间】:2015-12-29 05:38:24
【问题描述】:
我正在使用 Node 来运行这段代码
但是当我运行这段代码时,从 get 函数中的leadid 变量获取未定义的返回:
call = {};
call.hangup = {
get: function(isOpen, ami, elastic, validator, growly, mysql, request){
var self = call.hangup;
this.isOpen = isOpen;
this.ami = ami;
this.elastic = elastic;
this.validator = validator;
this.growly = growly;
this.mysql = mysql;
this.request = request;
if(isOpen)
{
ami.on('hangup', function(evt){
var cause_status = parseInt(evt.cause);
var message = self.causeStatus(cause_status);
var channel = evt.channel;
var isDAHDI = validator.contains(channel,"DAHDI");
if((isDAHDI)&&(cause_status == 16))
{
var mobile = evt.calleridnum;
if(validator.isLength(mobile,11))
{
if(validator.matches(mobile,/^09/i))
{
var txtMessage = "";
var sending = "";
var leadid = self.searching(mobile, mysql, validator);
retrun leadid; /// get the undefined !!!!
}
}
}
});
}else {
console.log("Hangup's Event is OFF !");
}
},
searching: function(number, mysql, validator){
this.number = number;
this.mysql = mysql;
this.validator = validator;
var query = "{sql ...}";
mysql.query(query, function(err, rows, fields) {
if (err) throw err;
if(!validator.isNull(rows))
{
return rows[0].leadid;
}else {
return false;
}
});
},
};
module.exports = call;
这是我在主文件中的称呼:
var call = require('./call');
call.hangup.get(true, ami, client, validator, growly, connection, request);
当我在主文件中调用这个函数(搜索)时
new call.hangup.searching(number, connection, validator);
正常工作
我该如何解决?
【问题讨论】:
-
如果
searching是call.hangup的一个方法,你为什么要做new self.searching?你在学习中错过了一些东西...... -
@MysterX 改变了它,但错误是一样的:/
-
您是否能够解决您的问题/了解它为什么返回
undefined? -
@pio 你的意思是什么?
-
我试图建议,如果我的回答帮助您解决了您的问题,请接受答案。如果您没有设法解决问题,请跟进您的进度/您遇到的问题。
标签: javascript node.js