我面臨着一些的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(){'和關閉'}'父函數(護照中間件)仍然可以查詢數據庫? –