Foros del Web » Programando para Internet » Javascript »

Do while con un proceso de FileReader ...

Estas en el tema de Do while con un proceso de FileReader ... en el foro de Javascript en Foros del Web. Hola a todos. Tengo un problema serio de asyncronia..... Tengo un código con el que leo de un fichero de mi ordenador datos, tengo un ...
  #1 (permalink)  
Antiguo 26/11/2013, 13:08
 
Fecha de Ingreso: noviembre-2010
Mensajes: 70
Antigüedad: 13 años, 4 meses
Puntos: 0
Do while con un proceso de FileReader ...

Hola a todos.
Tengo un problema serio de asyncronia.....

Tengo un código con el que leo de un fichero de mi ordenador datos, tengo un bucle en el que aumento la cantidad de datos leidos en caso de que no se cumpla una condición.
(estoy intentando leer ficheros de gigas con xyz's....)

Este es el codigo donde tengo elk problema de 'cuelgue':

Código:
var leer=true;
var validador= false;
do 
    {  
	if (leer)
	{ leer=false;
	  
	 

	   read (  // pasamos un callback al read para que vuelva ...
	       function read_ok (result) {	 
                   window.alert ("me han llamado") 			
 	           validador=true;
 	          
	        }		  
	    );
	 }

	} while (validador==false);
En la llamda a la funcion 'read', tengo un codigo que funciona perfectamente y que controla el envento 'onloadend' del filereader para llamar a la funcion read_ok que a su vez he pasado como callback.

Si pongo validador=true al prinicpio para que el programa salga del bucle, el evento onloadend se 'escucha' como dios manda, llama a la funcion que le ha pasado y todo correcto.

El problema es que el do-while de alguna manera impide que se 'recoga' ese evento. Parece que da prioridad 100% al do-while

Que estoy haciendo mal ? Creo que con el código que he puesto tiene que entenderse mi problema (sobre todo porque el codigo de lectura va bien...).

Gracias de antemano.
Gracias.
  #2 (permalink)  
Antiguo 27/11/2013, 12:11
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 13 años, 11 meses
Puntos: 154
Respuesta: Do while con un proceso de FileReader ...

no debes definir funciones dentro de loops, salvo que manejes muy bien closure y scope chain...no se que es result, pero te dejo el mismo ejemplo funcionando...para que usas la variable "leer"?...ya con "validador" es suficiente, salvooo que estes queriendo hacer otra cosa

http://jsbin.com/IfIPIVuv/12/edit
  #3 (permalink)  
Antiguo 28/11/2013, 02:39
 
Fecha de Ingreso: noviembre-2010
Mensajes: 70
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Do while con un proceso de FileReader ...

Hola.
Al final creo que voy a sustituir el loop por un timeout para que de tiempo a que salte el onloadend del filereader, esa es la clave.
No me acordaba del truco....

Que opinas ?

Gracias de todos modos.

Etiquetas: funcion, proceso
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 19:07.