Во-первых, вам правильно про промисы сказали.
Во-вторых, я от всей души рекомендую никогда не использовать стандартный контроллер MySQL и сразу работать с query builder'ом любым. Я предпочитаю
knex - очень прост в понимании, удобен, поддерживает async/await.
Ваша же проблема решается вот так:
function user(val) {
return new Promise(function (resolve, reject) {
var sss='';
const connection = mysql.createConnection({
database: 'base',
host: "localhost",
user: "root",
password: ""
});
connection.query("SELECT * FROM `user` WHERE `uid`="+val+"",
function(err, results) {
if (err) reject(err);
resolve(results);
});
connection.end();
})
}
let user = user(31)
.then(funnction(user) {
console.log(user); //Здесь прийдёт
})
.catch(function(err) {
console.log(err); //Здесь будет ошибка в случае чего
})