【发布时间】:2015-10-08 04:58:19
【问题描述】:
这是有问题的函数
function matches_password(password)
{
var modified = false;
var matched = false;
User.count({password : password}, function (err, result)
{
modified = true;
console.log('hei');
if (err)
{
//error
}
else
{
if (result)
{
matched = true;
}
}
});
while (!modified)
{
console.log('sleeping');
sleep.usleep(100000);
}
return matched;
}
如您所见,我有一个更新一些变量的回调;执行的主要流程被延迟,直到回调被触发。问题是'hei' 从未出现在控制台中。
删除 while 循环可以解决问题,但我需要它,否则 matched 总是错误的。
发生了什么事,我能做些什么来克服这个挫折?
【问题讨论】:
-
假设你正在使用this module、
sleep.usleep块,永远不要让回调运行。除此之外,请参阅stackoverflow.com/questions/14220321/…
标签: javascript node.js mongodb asynchronous mongoose