Pues nada, una vez mas aquí y con otro tema.
Estoy realizando un chat y estoy atascado en un problema que me está haciendo pensar que soy bastante tonto.
He detectado que es lo que pasa, pero no sé por qué y mucho menos como solucionarlo.
this.registerClient = function(clientNick){
var accept;
$.post('./js/dbControl.php',{client: clientNick, action: 'register'}, function(data){
if(data == 'register'){
accept = true;
}else{
accept = false;
}
});
return accept;
}
Con este código básicamente lo que hago es registrar en en la db a un nick, lo que realiza el .php es lo común: comprobar que no existe y si no existe registrarlo y devolverme un accept o un denied.
Bien, en este caso y como estoy montando el código, el .php me devuelve un 'register' como me lo devuelve si o si, por que lo tengo yo puesto a mano para que me lo devuelva, accept pasaría a ser true, bien, pues no será por mi inexperiencia pero registerClien no me devuelve el accept con el true.
Razón detectada: probando con console.log() añadido a varias lineas con números, es decir:
this.registerClient = function(clientNick){
console.log("1");
var accept;
$.post('./js/dbControl.php',{client: clientNick, action: 'register'}, function(data){
console.log("2");
if(data == 'register'){
accept = true;
console.log("3");
}else{
accept = false;
}
});
console.log("4");
return accept;
}
se puede observar como antes de pasarme por el $.post, me pasar directamente por el return, es decir, si que miro el console en un debugger se ve esto:
1
4
2
3
¿ Qué se me está pasando por arriba?, ¿ Por qué se está ejecutando el return antes de el envío post ?, me lo puedo imaginar por que es, pero no se la solución que tiene.
Gracias y saludos.