Foros del Web » Programando para Internet » Javascript »

por que no toma el nuevo valor?

Estas en el tema de por que no toma el nuevo valor? en el foro de Javascript en Foros del Web. Que tal, estaba haciendo un ciclo, entonces hice esto: var bandera=0; ... //aqui hay algo que tarda en ejecutarse y cuando termina bandera=1 ... for(a=0;a<10;a++){ ...
  #1 (permalink)  
Antiguo 17/10/2007, 08:12
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 2 meses
Puntos: 3
Pregunta por que no toma el nuevo valor?

Que tal, estaba haciendo un ciclo, entonces hice esto:

var bandera=0;
...

//aqui hay algo que tarda en ejecutarse y cuando termina bandera=1
...
for(a=0;a<10;a++){
alert('le doy tiempo');
if(bandera!=0)
alert('es diferente');
}

ahora, la cosa es que bandera puede cambiar en cualquier momento en una accion antes de ese for, y me doy cuenta de cuando aparece el primer alert del ciclo en for, bandera ya vale 1, pero sin embargo en el for no lo toma y nunca entra a es diferente...

es decir, cuando me aparece el primer "le doy tiempo" despues me aparece otro alert de la funcion que tarda y me dice que bandera cambio a uno, le doy aceptar, despues le doy aceptar al alert del for y sigue ejecutandose, pero nunca entro a la condicion dentro del for pese a q bandera vale 1, por que no actualiza el valor de bandera en el for? se puede hacer algo para que eso no pase? de antemano gracias!
__________________
Wow! No se que decir...
  #2 (permalink)  
Antiguo 17/10/2007, 10:27
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: por que no toma el nuevo valor?

Hola:

No creo que ese retardo te valga... hay muchos lenguajes que usan algoritmos especiales y no detienen su ejecución (creo que se llaman algoritmos peresozos... ). Supongo que los retardos debes hacerlos con setTimeout, o tal vez sea mejor un sistema recursivo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 17/10/2007, 11:10
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: por que no toma el nuevo valor?

Hola zyon, aquí vengo yo:

Comprueba que bandera sea una variable global (y que en tu función que tarda no esté declarada con var). Si cambias algo global en una función, estará disponible para todo el script, así que no entiendo muy bien que falle, salvo por el scope de las variables.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 17/10/2007, 15:51
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.289
Antigüedad: 19 años, 2 meses
Puntos: 3
Re: por que no toma el nuevo valor?

bueno, gracias por las respuestas, aye otro modo de hacer lo que necesitaba :S pero muchas gracias...
__________________
Wow! No se que decir...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:40.