我面临着一些的NodeJS新:process.nextTick
passport.js和process.nextTick战略
在某些策略passport.js代码示例中,我们可以看到
passport.use(new LocalStrategy(
function (username, password, done) {
// asynchronous verification, for effect...
process.nextTick(function() {
findByUsername(username, function (err, user) {
// ...
bcrypt.compare(password, user.password, function (err, res) {
// ...
});
})
});
}
));
但在正式文档,它不被使用。 (http://passportjs.org/guide/username-password/)
我的理解是应该使用process.nextTick
推迟同步堆栈以不阻塞事件。但是在这个策略代码中,没有事件发生。
这样做的好处是什么?
也许这是应该作为一个注释块在样本代码中留下的东西?我注意到你在passport-twitter示例代码中也有了nextTick。我很欣赏模拟异步函数的原因,但是,我还没有发现任何博客示例代码,他们不使用nextTick(而且似乎不需要)。 – SJoshi
所以如果我们只取出'process.nextTick(function(){'和关闭'}'父函数(护照中间件)仍然可以查询数据库? –