Buenas,
Hay alguna forma de hacer un delay (sin que se ejecute el resto del código, como sucede con setTimeout() ) ?... o sea, que se detenga en ese punto la ejecución del código
gracias
| |||
delay Buenas, Hay alguna forma de hacer un delay (sin que se ejecute el resto del código, como sucede con setTimeout() ) ?... o sea, que se detenga en ese punto la ejecución del código gracias |
| |||
Re: delay El tema es que en el trabajo usamos una clase en javaScript para obtener los datos de la BBDD que hizo un compañero (síncrona). El tema está en que simplemente pretendo mostrar un mensaje tipo "obteniendo datos" justo antes de hacer la consulta, pero ocurre que el mensaje no se muestra (sí lo hace si pongo un alert entre la escritura del menaje y la consulta a la BD con dicha clase... setTimeOut y setInterval no me sirven, ya que continúa la ejecución del código. Gracias |
| ||||
Re: delay Sí, hice yo un ejemplo parecido, pero es algo un poco complicado. Se trata de tener una variable que almacene el estado de algo, y una función que verifique si el estado cambia, entonces continuar el hilo. http://www.forosdelweb.com/f13/aporte-programacion-secuencial-432551/ Te aviso de que te lo tienes que leer con suavidad, y que el código puede mejorarse, pero para cosas simples es válido. Incluso se pueden simular sleeps...
__________________ - Haz preguntas inteligentes, y obtendrás más y mejores respuestas. - Antes de postearlo Inténtalo y Búscalo. - Escribe correctamente tus mensajes. |
| ||||
Re: delay Hola: ¡Que tal derkenuke (¡Hola ): He visto por encima tu código, y recuerdo que tuve el mismo problema que comentaba en el el_javi en el mismo mensaje, para hacer recursión (temporizada) sobre objetos concretos en un sistema que tengo de menús (el que tengo en la página de mi perfil -caricatos.net-), y lo solucioné insertando en los nuevos objetos creados un campo que llamo nombre con el mismo nombre de la variable: function miObjeto(nombre, descriptor1, descriptor2) { this.nombre = nombre; this.descriptor1 = descriptor1; this.descriptor2 = descriptor2; } Y al crearlo repito el nombre de la variable en el primer parámetro: var objetoNuevo = new miObjeto("objetoNuevo", dato1, dato2); Para ayudar a referenciarlo se puede reescribir su método toString() para que devuelva su nombre: miObjeto.prototype.toString = function() {return this.nombre;} Y un par de ejemplos de temporización:
Código:
Lo que no sé es si a MikiBroki pueda servirle.miObjeto.prototype.mostrarTemporizado = function() {setTimeout("alert('" + this +"')", 1000)} miObjeto.prototype.mostrarTemporizado2 = function() {setTimeout("alert(window['" + this +"'])", 2000)} var x = new miObjeto("x", "y", "z"); x.mostrarTemporizado(); x.mostrarTemporizado2(); Saludos
__________________ Por favor: No hagan preguntas de temas de foros en mensajes privados... no las respondo |
| ||||
Re: delay Hola caricatos! Me ha gustado, también pensé en ponerle la propiedad nombre, pero no me decidí por ello porque si cambiaba el nombre a las variables también tenía que cambiar esas propiedades, y era un engorro. Además no me gusta escribir dos veces la misma cosa , por eso escribí la parte de "serializar" en una matriz con un número aleatorio. Lo que yo básicamente quería es que el coche acelerase a una velocidad, y cuando acabase de acelerar (instante que desconocería, ya que puede acelerar más rápido o más lento, o hasta un límite mayor o menor) entonces realizar otra acción. También podía simularlo, es decir, si quiero acelerarlo de 0 a 50km/h y depués frenarlo, mido lo que tarda en acelerar y llamo con un setTimeout a la función frenar según lo que tardase. A eso le veo el problema que en cuanto cambio algo y quiero que acelere de 0 a 60, ya tendría que cambiar dos cosas: el 60 mismo y el tiempo del segundo setTimeout. Volvemos al problema de antes de tocar dos cosas para cambiar sólo una. Si se os ocurre una mejor manera de hacerlo, bienvenida sea. Un saludo a los dos!
__________________ - Haz preguntas inteligentes, y obtendrás más y mejores respuestas. - Antes de postearlo Inténtalo y Búscalo. - Escribe correctamente tus mensajes. |