я столкнулся что-то новое в 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
следует использовать для отсрочки синхронного стека, чтобы не блокировать событие. Но в этом коде стратегии нет события.
Какая польза от этого?
Возможно, это то, что должно быть оставлено в качестве кода с комментариями в примере кода? Я заметил, что у вас был следующий тик в примере с паспортным твиттером. Я ценю причину симуляции функции async, однако я не нашел ЛЮБОГО кода примера блога, где они не используют nextTick (и, похоже, это ненужно). – SJoshi
так что если мы просто вытаскиваем 'process.nextTick (function() {' и закрывающий '}'. Родительская функция (промежуточное ПО для паспорта) будет по-прежнему работать для запросов к БД? –