@RunFMe

Как взять значение из callback?

Использую поиск в mongoose в callback, в callback можно получить результат поиска по БД с помощью mongoose, теперь вопрос. Как можно извлечь эти результаты из callback, чтобы использовать их дальше. Вот сам код, надеюсь он будет понятнее.
.validateRegistration(function (newUserAttrs, errors) {
var login = newUserAttrs.login;
var confirmPassword = newUserAttrs.confirmPassword;
if (!confirmPassword) errors.push('Missing password confirmation')
if (newUserAttrs.password != confirmPassword) errors.push(confirmPassword);
User.find({ login: login }, function (err, newUser) {
if (newUser || err) {
errors.push('Login already taken');//собственно это мне и нужно
}
});
return errors;
})
  • Вопрос задан
  • 2315 просмотров
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
Если в функции вызывается нечто асинхронное, то и сама функция может быть только асинхронной (так как нельзя вернуть то, чего пока ещё нет и оно станет известно позже). Потому делайте функцию асинхронной и передавайте в неё callback, который вызывайте уже после того, как массив errors будет окончательно сформирован (в данном случае - в самом глубоком вложенном callback'е)
Ответ написан
Комментировать
TheCreator
@TheCreator
Бездельник
Ещё почитайте про модули async или Q, сейчас ваш код выглядит немножко страшно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы