Всем привет есть такая функция которая по идее должна возвращать либо 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; } }); } Code 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; } }); }
погоди либо я тупой либо ты поставил три равно The post was merged to previous Aug 29, 2022 как он может вернуть тру или фолс если он сравнить не может The post was merged to previous Aug 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; } }); }