递归回调创建唯一值问题
发布于 10 年前 作者 jx-zhou 3530 次浏览 最后一次编辑是 8 年前 来自 问答

我的需求是想用redis自己做一个session模块,随机生成一个32位的字符串。如果判断这个值在redis中有的话,则递归调用接口重新生成一个。确保唯一性 部分代码

//根据key获取redis值 Session.prototype.get = function(key,next){ this.client.get(key,function(err,value){ if(err) next(err); next(null,value); }) }

Session.prototype.createUnionKey = function(next){ console.log(‘createUnionKey’); var str = ‘0123456789abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXYZ’; var length = str.length; var SESSION = ‘’; for( var i = 0;i < 32;i++){ var num = Math.floor(Math.random()*length); SESSION += str.substring(num,num+1); } this.get(SESSION,function(err,value){ if(err) next(err); if(value != undefined ){ Session.prototype.createUnionKey(next);//这个位置应该递归调用这个方法,请问应该怎么写 }else{ next(null,SESSION); } }) }

1 回复

有木有人帮一下= =感激不尽

回到顶部