Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/05/2015, 01:34
Pantaláimon
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: Orden de ejecucion javascript

Bienvenido a las bondades de la programación asíncrona donde la linea de código que está abajo no tiene porque ejecutarse después de la que esta arriba. Bien, esto ya pasa al escribir código modularmente con funciones. Tu puedes definir una función en cualquier espacio del código y luego ejecutarla en cualquier otro lugar.

Aquí es un poco diferente. Has usado eventos click? Pues una petición ajax funciona esecialmente como un evento click. Tu no sabes cuando llegara la respuesta ajax o el click del usuario. Por eso cuando escribes código para estos eventos, registras una función que se ejecute cuando el evento deseado se produzca. El código que viene después de la petición ajax o del click no implica que haya llegado la respuesta ajax o se haya habido un click. Y por tanto es normal que no obtengas el valor deseado.

Tu ejemplo cambiando la petición AJAX por un click:

Código Javascript:
Ver original
  1. var x = 3;
  2.  
  3. alert(x);
  4.  
  5. var x = mifuncion(x,y,z);
  6.  
  7. alert (x);
  8.  
  9. function mifuncion(x, y, z) {
  10.   var sum;
  11.   document.body.onclick = function () {
  12.     sum = x + y + z;
  13.   }
  14.   return sum; // undefined hasta que no se clique. Y cuando se clique con toda probabilidad la función ya se habrá ejecutado
  15. }
__________________
github.com/xgbuils | npm/xgbuils