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

我在process.nextTick()方法里面看到了很多Mongo(mongoose ORM)查询。 我知道nextTick推迟执行到下一个迭代,但由于这些查询是asynchronous的,为什么他们仍然使用它呢?

例:

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

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

有一堆使用这个设置的护照教程: 在 这里 , 在这里 。

我不知道如何使用process.nextTick()来了,但似乎这些教程可能是互相借用代码,或者是一个常见的源代码(我找不到)。

因为这些教程在Google上的排名很高,所以人们在查找Passport示例代码时会find它们,并将其复制。 所以在SO问题中也会出现很多,也许会强制实现这个想法。

我认为这是适合于负载较重的环境,以免长时间mongoDB处理器(让其他node listen loop以在调用mongoDB查询之前获取处理器时间片)。