function generate(count) {
var founded = false,
_sym = 'abcdefghijklmnopqrstuvwxyz1234567890',
str = '';
while(!founded) {
for(var i = 0; i < count; i++) {
str += _sym[parseInt(Math.random() * (_sym.length))];
}
base.getID(string, function(err, res) {
if(!res.length) {
founded = true; // How to do it?
}
});
}
return str;
}
如何使用数据库查询回调设置变量值?我该怎么做?
原文由 owl 发布,翻译遵循 CC BY-SA 4.0 许可协议
自从我使用 node.js 以来已经有一段时间了,但我想我可能能够提供帮助。
首先,在节点中,你只有一个线程并且应该使用回调。您的代码会发生什么,
base.getID
查询将排队等待执行,但while
循环将继续作为繁忙循环毫无意义地运行。您应该能够通过回调解决您的问题,如下所示:
并这样使用它
我在大约 2 年的时间里没有编写任何 node/js 代码,也没有对此进行测试,但基本思想应该成立——不要使用繁忙的循环,并使用回调。您可能想看看节点异步包。