为什么在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
查询之前获取处理器时间片)。