Задать вопрос
@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;
})
  • Вопрос задан
  • 2316 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
Если в функции вызывается нечто асинхронное, то и сама функция может быть только асинхронной (так как нельзя вернуть то, чего пока ещё нет и оно станет известно позже). Потому делайте функцию асинхронной и передавайте в неё callback, который вызывайте уже после того, как массив errors будет окончательно сформирован (в данном случае - в самом глубоком вложенном callback'е)
Ответ написан
Комментировать
TheCreator
@TheCreator
Бездельник
Ещё почитайте про модули async или Q, сейчас ваш код выглядит немножко страшно.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы