回调函数中如何根据条件循环查找相同sql数据库?或者说回调函数怎样实现无限次递归调用?
发布于 11 年前 作者 iwilsonlee 4882 次预览 最后一次回复是 11 年前 来自
请看下面代码逻辑,问题在下面代码的中文里。真心求教!
function GetRandomNum(Min,Max)
{
var Range = Max - Min;
var Rand = Math.random();
return(Min + Math.round(Rand * Range));
}
Member.get_user_code = function(callback){
var user_code= GetRandomNum(100,100000000);
Member.get(user_code,function(err,member){
if(err)throw err;
if(member){
user_code= GetRandomNum(100,100000000);
//这里需要实现重新生成user_code并执行检查数据库,直到检查到数据库中不存在该user_code为止,请问这里的逻辑怎么实现?
//或者说如何循环执行Member.get函数直到此函数返回值为null为止呢?
......
}
callback(user_code);
});
}
Member.get = function(user_code,callback){
var member = null;
mysql.connection(function(connection){
connection.query('select * from members where user_code=?',user_code,function(err, results, fields){
if(results && results.length > 0){
member = new Member(results[0]);
}
callback(err,member);
});
});
}
1 回复
自己搞定了,参考了async库的whilst函数写法,改后如下:
最后在调用的方法是: