Ver Mensaje Individual
  #5 (permalink)  
Antiguo 25/11/2008, 16:47
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: funcion con precallback y postcallback

Tal como está el código que has puesto, ocurre como esperas. El código se ejecuta secuencialmente. Hasta que no termine precallback() no se ejecuta la siguiente sentencia.

Código javascript:
Ver original
  1. var flag = 0;
  2. function mifuncion(param,hook){
  3.     alert("[1]: " + flag);
  4.     flag = param;
  5.     alert("[2]: " + flag);
  6.     if (hook) { hook(); }
  7.     alert("[3]: " + flag);
  8.     flag = param;
  9.     alert("[4]: " + flag);
  10. }
  11. mifuncion(3, function() { alert("[a]: " + flag); flag = 7; alert("[b]: " + flag);});
El resultado de los alerts es:
[1]: 0
[2]: 3
[a]: 3
[b]: 7
[3]: 7
[4]: 3
Es decir, en el orden correcto que cabía esperar.


De todos modos, con la llamada de ejemplo que has puesto, no hay ningún efecto secundario en las funciones que pasas como precallback y postcallback, así que en realidad no se ve el orden de ningún modo. Repito: con ese ejemplo.



Otra cosa distinta es que en las funciones que pasas como precallback y postcallback haya otro tipo de llamadas. Si, lo que tienes en ellas, por ejemplo son llamadas asíncronas con XHR o setTimeouts o algo similar, entonces a eso no se esperará que finalice (por definición). Pero ojo, a eso. Porque en realidad la llamada a precallback() sí que finalizará y se continuará en orden.

Quizá sería más conveniente que pusieras el código real para que podamos ver dónde está el problema.