Foros del Web » Programando para Internet » Javascript »

Tiempo respuesta.

Estas en el tema de Tiempo respuesta. en el foro de Javascript en Foros del Web. Hola, tengo un problema con una función, y éste me ha planteado una duda. Tengo una función funcion1 que hace una petición asíncrona (con $.post()) ...
  #1 (permalink)  
Antiguo 23/02/2011, 05:27
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 13 años, 6 meses
Puntos: 0
Tiempo respuesta.

Hola, tengo un problema con una función, y éste me ha planteado una duda.

Tengo una función funcion1 que hace una petición asíncrona (con $.post()) y devuelve return true o falso.

Por otro lado tengo otra función funcion2 así:

Código:
function funcion2(){
if(funcion1){
return true;
}else{
return false;
}
}
La cosa es que siempre devuelve false.
Puse unos alerts en funcion1 para ver que devolvia. Y me di cuenta que funcion2 evalua el if, sin esperar a la respuesta de funcion1. Porque una vez que me devuelve false, luego me aparece el alert de funcion1 diciendo que devuelve true :)

Como hago para que ese if espere a la respuesta de funcion1

Un saludo, gracias.
  #2 (permalink)  
Antiguo 23/02/2011, 12:38
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Tiempo respuesta.

Podés poner el código?
  #3 (permalink)  
Antiguo 23/02/2011, 13:02
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 57
Respuesta: Tiempo respuesta.

Es correcto el comportamiento que tiene el script. Al hacer una peticion asincrona, esta se lanza e inmediatamente despues se continua ejecutando el script. Por eso se llama asincrona, significa que no se espera a recibir la respuesta.

Lo que tendrias que hacer es poner el codigo (que verificar el resultado que se regreso) en el evento que se ejecuta cuando la peticion se termino.
  #4 (permalink)  
Antiguo 24/02/2011, 01:45
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Tiempo respuesta.

Cita:
Iniciado por posman Ver Mensaje
Es correcto el comportamiento que tiene el script. Al hacer una peticion asincrona, esta se lanza e inmediatamente despues se continua ejecutando el script. Por eso se llama asincrona, significa que no se espera a recibir la respuesta.

Lo que tendrias que hacer es poner el codigo (que verificar el resultado que se regreso) en el evento que se ejecuta cuando la peticion se termino.
Ok, vere entonces como lo hago :) Gracias.

La función que me da problema es cuando voy a validar el formulario. Tengo que esperar al resultado de la función que me comprueba si un valor ya existe en la base de datos (porque es el campo clave)

Etiquetas: respuesta
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 02:14.