我在process.nextTick()方法中看到了很多Mongo(mongoose ORM)查询。我知道nextTick将执行推迟到下一次迭代但是因为these queries are asynchronous他们为什么还要使用它?
示例:
process.nextTick(function() {
User.findOne({ 'local.email' : email }, function(err, user) {
...
});
});
答案 0 :(得分:3)
TL; DR :这不是必需的,或者特别有用。
有许多使用此设置的Passport教程:here,here,here。
我不知道如何使用process.nextTick()
,但似乎这些教程可能是从彼此借用代码,或者是一个共同的来源(我无法找到)。
由于这些教程在Google上排名很高,人们在寻找Passport示例代码时会找到它们,然后复制它。因此,在SO问题中也会出现很多问题,或许会强制要求它以某种方式需要。
答案 1 :(得分:0)
我认为这适用于重负载环境,以便不会篡夺处理器太长时间(让node listen loop
的其他实例在拨打{{1}之前获取处理器时间片}查询)。