Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 19.02.2016
Сообщений: 61
1

Ожидание ответа от функции

15.01.2021, 19:52. Показов 4984. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!!
нужна помощь.
Есть две строчки кода (Node Js):
первый:
Javascript
1
2
var findUser = usersDATA.findOneByEmail(req.body.email);
console.log("findUser!", findUser);
сама ф-я (находится в другом файле)
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
findOneByEmail(data) {
        var result = false;
        this.User.findOne({ where: { email: data } })
            .then(user => {
                if (!user){
                    return result;
                }else{
                    return user;
                } 
                
            }).catch(err => console.log(err));
            
    }
проблема в том что console.log() выполняется раньше чем сама функция.
Помогите, плз, решить данную проблему. мне нужно что бы в console.log() был результат ф-ии findOneByEmail()
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2021, 19:52
Ответы с готовыми решениями:

Ожидание ответа сервера
IIS 7.5 Ожидание ответа сервера от чего зависит и как его снизить?

Ожидание ответа от сервера
Здрастуйте, у меня такой вопрос например я отправляю POST запрос вот таким вот образом:...

Ожидание ответа пользователя
такая проблема: в цикле перебираются открытые документы word, если они есть, и каждый из них...

Ожидание ответа сервера
Пишу (а точнее модифицирую) менеджер предметов для ролевого чата. Написал функцию, по которой...

2
754 / 359 / 100
Регистрация: 04.10.2018
Сообщений: 548
15.01.2021, 21:23 2
Лучший ответ Сообщение было отмечено web_coder2 как решение

Решение

Привет enzo32,

Цитата Сообщение от enzo32 Посмотреть сообщение
проблема в том что console.log() выполняется раньше чем сама функция
В коде есть 2 проблемы:
1. findOneByEmail не имеет return и потому всегда возвращает undefined, перепишите ее так

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
findOneByEmail(data) {
        var result = false;
        return this.User.findOne({ where: { email: data } })
            .then(user => {
                if (!user){
                    return result;
                }else{
                    return user;
                } 
                
            }).catch(err => console.log(err));
            
    }
2. промисы асинхронные и поэтому чтобы синхронизироваться нужно их обрабатывать в асинхронной функции например так

Javascript
1
2
3
4
(async function (){
    var findUser = await usersDATA.findOneByEmail(req.body.email);
    console.log("findUser!", findUser);
}())
1
0 / 0 / 0
Регистрация: 19.02.2016
Сообщений: 61
18.01.2021, 13:18  [ТС] 3
Спасибо большое!!
0
18.01.2021, 13:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2021, 13:18
Помогаю со студенческими работами здесь

Ожидание ответа от клиента
Метод в котором выполняются вычисления, сигналом signalAction передаем ссылку слоту...

ожидание ответа от TCP_Client
Здравствуйте. подскажите как выставить таймаут у операции connect() для сокетов по закрытому порту?

Ожидание ответа от сервера
Клиент1 шлет серверу запрос, в котором содержатся координаты. Координаты заносятся в БД на поле....

Ожидание ответа от сервиса
Доброго времени. Есть следующий принцип работы программы: Она отбирает 10 записей (список *) и...

Ожидание ответа от пользователя
Добрый день Имеется задача - Нужно реализовать бота, который отправляет rss - страницу в бд mysql...

Ожидание ответа сервера
Возникла необходимость на html-странице автоматически отправлять запрос серверу через определённые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru