Socket.io 无法从我的函数返回值

Socket.io 无法从我的函数返回值,socket.io,node-mysql,Socket.io,Node Mysql,我无法从函数返回值,我的sql没有问题。它工作正常,我只是无法返回结果值并将其传递给res变量 io.on('connection', function (socket) { socket.on('getdetails', function (data) { var res = getdatatodb(data.id); console.log("result",res);

我无法从函数返回值,我的sql没有问题。它工作正常,我只是无法返回结果值并将其传递给res变量

io.on('connection', function (socket) {


            socket.on('getdetails', function (data) {

                 var res = getdatatodb(data.id);

                  console.log("result",res);

            });
        });


   });

   function getdatatodb(id){

       connection.connect(function(err) {
                if (err) {
                    console.error('error connecting: ' + err.stack);
                    return;
                }


                var options = {sql: ".....",nestTables: true };
                connection.query(options,function(err, results) {
                    if(err){
                        console.log(err);
                    }

                    return results;
                });
         });
    }

提前谢谢你。

这是一堆其他问题。当您从回调返回一个值时,该值将返回到调用回调的引擎中,而不是从外部函数返回。而且,回调通常是异步的,这意味着它是在外部函数已经完成很长时间后调用的。那么我如何得到结果呢?可能是重复的。您可以在完成回调中处理结果,或者从回调中调用某些函数。无法从外部函数返回结果。您可能希望将回调函数传递给
getdatatodb()
,当结果可用时可以调用该函数。无法从异步操作同步返回数据。无法在Javascript中完成。