NodeJS y Socket.IO
¿Es posible crear un callback o una promise en un evento de escucha?
Tengo un código como el siguiente:
io.on('connection', (socket) => {
//escucho evento
socket.on('evento', function(data){
var aux_data = JSON.parse(data);
//llamo función exterior
myFunction(aux_data);
//cuando myFunction acabe sigo aquí
//otherFunction();
});
});
var myFunction = function(data){
//stuff...
return 'ok!';
}
Lo he intentado con una promise:
io.on('connection', (socket) => {
//escucho evento
socket.on('evento', function(data){
var aux_data = JSON.parse(data);
//llamo función exterior
var foo = new Promise((resolve, reject) => {
setTimeout(function(){
var aux_id = myFunction(aux_data);
resolve(aux_id);
},500);
}).then((success) => {
console.log(success);
});
//cuando myFunction acabe sigo aquí
//otherFunction();
});
});
var myFunction = function(data){
//empiezo a ejecutar
console.log('ejecutando');
//termino de ejecutar
return 'ok!';
}
Pero no entiendo por qué el mensaje "ok!" aparece antes que el de "ejecutando". Se supone que hasta que myFunction no termine no salta al then
, no?