【发布时间】:2017-10-01 02:30:47
【问题描述】:
我正在解决一个问题,我必须为用户生成一个唯一的 id,但我无法弄清楚如何打破 Promise 中的 while 循环。以下函数将查找是否存在具有相同 ref_id 的用户或者不,然后给我一个解决承诺。
function makeRefId() {
return new Promise(function(resolve , reject){
var refId = null;
var flag = true;
var tempUser ;
do{
refId = randomId(); //this will return a random string
console.log(refId);
tempUser = User.findOneAsync({ref_id:refId}).then(function(user){
if(user == null)
{
flag = false;
resolve(refId);
}
});
}while(flag);
});
}
【问题讨论】:
标签: javascript node.js promise bluebird