Javascript Socketio返回信息

Javascript Socketio返回信息,javascript,socket.io,Javascript,Socket.io,我想在从socket.io请求中获得信息后立即退出带有return的函数。功能如下: function getSession(key) { socket.emit('client_get_session', {key : key}); socket.on('server_send_session', function(data) { return data; }); } 它应该在接收数据时返回数据,但函数似乎在数据实际到达

我想在从socket.io请求中获得信息后立即退出带有return的函数。功能如下:

function getSession(key) {
        socket.emit('client_get_session', {key : key});
        socket.on('server_send_session', function(data) {
            return data;
        });
}
它应该在接收数据时返回数据,但函数似乎在数据实际到达之前结束。当我使用console.log()运行它时,它将首先显示函数的结束,然后显示包含实际数据的控制台日志


我怎样才能避免这种情况并返回“数据”?

回调是有帮助的,承诺也是

function getSession(key, cb){
     socket.emit('client_get_session', {key : key});
     socket.on('server_send_session', function(data) {
        if(!data) return console.error('beep error occured');
        cb && cb(data);
     });
}

getSession(123,function(resData){
    console.log('result',resData);
})

回电是有帮助的,承诺也是

function getSession(key, cb){
     socket.emit('client_get_session', {key : key});
     socket.on('server_send_session', function(data) {
        if(!data) return console.error('beep error occured');
        cb && cb(data);
     });
}

getSession(123,function(resData){
    console.log('result',resData);
})