Всем привет есть такая функция которая по идее должна возвращать либо true либо false но она возвращает undefined. Использую бд mysql2. Уже бошку сломал. const isUserSet = (chatId) => { let chatId1 = chatId; let sql = `SELECT * FROM users WHERE chatid="${chatId1}" LIMIT 1`; let result = connection.query(sql, (err, res, fields) => { if (res.length === 0) { return false; } else { return true; } }); } Код const isUserSet = (chatId) => { let chatId1 = chatId; let sql = `SELECT * FROM users WHERE chatid="${chatId1}" LIMIT 1`; let result = connection.query(sql, (err, res, fields) => { if (res.length === 0) { return false; } else { return true; } }); }
погоди либо я тупой либо ты поставил три равно --- Сообщение объединено с предыдущим 29 авг 2022 как он может вернуть тру или фолс если он сравнить не может --- Сообщение объединено с предыдущим 29 авг 2022 попробуй два равно заместь трех
bamschans, connection.query - асинхронная функция, она ничего не возвращает - она вызывает callback. Так что тебе надо или тоже добавить свой callback или переделать всё на async/await
Бля я походу один на этом форуме кто понимает как работают асинхронные запросы const isUserSet = async (chatId) => { let chatId1 = chatId; let result = await (new Promise((resolve) => { let sql = `SELECT * FROM users WHERE chatid="${chatId1}" LIMIT 1`; connection.query(sql, (err, res, fields) => { if (res.length === 0) { resolve(false); } else { resolve(true); } }); })) return result; } JavaScript const isUserSet = async (chatId) => { let chatId1 = chatId; let result = await (new Promise((resolve) => { let sql = `SELECT * FROM users WHERE chatid="${chatId1}" LIMIT 1`; connection.query(sql, (err, res, fields) => { if (res.length === 0) { resolve(false); } else { resolve(true); } }); })) return result; } И лучше используй какую-то библиотеку для работы с бд получше, с этой еботни много Само собой эту функцию юзай в другой асинхронной функции с await, ибо она ожидает ответа от бд
const isUserSet = async (chatId) => { let chatId1 = chatId; let sql = `SELECT * FROM users WHERE chatid="${chatId1}" LIMIT 1`; let result = await connection.query(sql, (err, res, fields) => { if (res.length === 0) { return false; } else { return true; } }); } JavaScript const isUserSet = async (chatId) => { let chatId1 = chatId; let sql = `SELECT * FROM users WHERE chatid="${chatId1}" LIMIT 1`; let result = await connection.query(sql, (err, res, fields) => { if (res.length === 0) { return false; } else { return true; } }); }