Задать вопрос
nepster-web
@nepster-web

Почему постоянно лезет undefined?

Работаю с node.js. Есть вот такая конструкция:
var result = findUserByHash('hash', function(user){
            console.log (user);
            return user;
        });

        console.log (result);


Момент в том, что внутри колбэка все хорошо, однако при вызове console.log (result), показывает undefined.
Насколько я понял, это фишка асинхронности?
Это получается, нужно код выстраивать цепочкой из колбэков?
  • Вопрос задан
  • 650 просмотров
Подписаться 2 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
На сколько я поля это фишка асинхронности !?
Правильно поняли.

Это получается нужно код выстраивать цепочкой из калбэков ?
Необязательно. (для nodejs, понятно, своя специфика, но общие принципы такие же, естественно).
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Да, именно так, на момент вызова console.log колбэк еще не отработал. Добро пожаловать в callback hell. Альтернативы:
- промисы, позволяют уменьшить вложенность колбэков
- корутины - сложно но можно писать асинхронный код в синхронном стиле, повторюсь это сложно
- async/await - еще не запилили в js.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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