если доступной нужно сделать переменную (не значение переменной) то так
var sharedData;
socket.on('Название события', data => {
sharedData = data
})
Но подозреваю что вам нужно сделать доступной не саму переменную а полученное внутри обработчика значение data?
Если вам нужен именно второй вариант, то ответ НИКАК))))
НО:
1. вы можете сделать видимость ее доступности:
(async () => {
async function getData(){
const promise = new Promise(function(resolve, reject) {
socket.on('Название события', data => {
resolve(data);
});
});
return promise;
}
var sharedData = await getData();
// тут в sharedData будет доступно значение из data
})();
2. или же вы можете в нужных местах (в нескольких) ловить событие 'Название события', и при его получении обрабатывать data.
3. есть и другие варианты, все они связанны с асинхронностью, и так или иначе позволяют правильно и своевременно обработать data поступившую посредством события 'Название события'