I am using socket.io and I'd like to convert the callback function into a simple promise based function where I can return a value.
I'm trying to convert the acknowledgement found here: socket.io/docs/#sending-and-getting-data-(acknowledgements)
socket.on('getGames', (data, callback) => {
Game.find(data)
.then(data => callback(data)); //explicit call to callback
});
I'd like to call a function instead such as:
socketEvent(socket, 'getGames')
.then((data) => {
return Game.find(data); //returns a promise and can be chained
});
I'm thinking something like:
//this doesn't work
const socketEvent = (socket, name) => {
return new Promise(function (resolve, reject) {
socket.on(name, (data, callback) => {
resolve((data) => callback(data));
});
});
};