为什么在mongoose查询之前使用process.nextTick()?

时间:2016-05-20 18:18:00

标签: javascript node.js mongodb mongoose

我在process.nextTick()方法中看到了很多Mongo(mongoose ORM)查询。我知道nextTick将执行推迟到下一次迭代但是因为these queries are asynchronous他们为什么还要使用它?

示例:

process.nextTick(function() {
    User.findOne({ 'local.email' :  email }, function(err, user) {
      ...
    });
});

2 个答案:

答案 0 :(得分:3)

TL; DR :这不是必需的,或者特别有用。

有许多使用此设置的Passport教程:hereherehere

我不知道如何使用process.nextTick(),但似乎这些教程可能是从彼此借用代码,或者是一个共同的来源(我无法找到)。

由于这些教程在Google上排名很高,人们在寻找Passport示例代码时会找到它们,然后复制它。因此,在SO问题中也会出现很多问题,或许会强制要求它以某种方式需要。

答案 1 :(得分:0)

我认为这适用于重负载环境,以便不会篡夺处理器太长时间(让node listen loop的其他实例在拨打{{1}之前获取处理器时间片}查询)。