Foros del Web » Programando para Internet » Node.js »

[SOLUCIONADO] Tiempos...

Estas en el tema de Tiempos... en el foro de Node.js en Foros del Web. Hola, tengo una aplicacion en un servidor Node.js, la cual necesito que llene una array de objetos JSON antes de empezar a funcionar con esta ...
  #1 (permalink)  
Antiguo 07/11/2013, 17:17
 
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 15 años, 3 meses
Puntos: 0
Tiempos...

Hola, tengo una aplicacion en un servidor Node.js, la cual necesito que llene una array de objetos JSON antes de empezar a funcionar con esta funcion:

Código:
var getNotas = function(){
	var retorno;

	request('http://'+IP_DJANGO+':'+PUERTO_DJANGO+'/ecg/notas', function (error, response, body) {
		if (!error && response.statusCode == 200) {
			retorno = JSON.parse(body);		
		}
	});
	return retorno;
};
despues de la definicion de getNotas como funcion la invoco asi:


Código:
var notas = getNotas();
pero la variable notas viene como "undefined" y la variable retorno dentro de la funcion request tiene el JSON perfecto.
Si coloco la variable notas = body tambien me sale undefined, parece ser que request es asincronico y mientras carga el JSON sigue con la ejecucion del programa, lo que me entorpece la asignacion. Podria ser eso?

Gracias

PD: request es una libreria de Node.js ( https://github.com/mikeal/request )
  #2 (permalink)  
Antiguo 08/11/2013, 01:45
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 12 años, 3 meses
Puntos: 17
Respuesta: Tiempos...

Hola.

creale un callback a tu "getNotas()";

Código Javascript:
Ver original
  1. var getNotas = function( callback ){
  2.  
  3.     request('http://'+IP_DJANGO+':'+PUERTO_DJANGO+'/ecg/notas', function (error, response, body) {
  4.         if (!error && response.statusCode == 200) {
  5.             if( callback ) callback( JSON.parse(body) );       
  6.         }
  7.     });
  8. };
  9.  
  10. // la usas de esta forma
  11.  
  12. getNotas ( function ( result ){
  13.       if( result ){// as lo que tengas que hacer con tu result }
  14. });

no se si va por ayi la cosa.
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #3 (permalink)  
Antiguo 08/11/2013, 17:58
 
Fecha de Ingreso: julio-2009
Mensajes: 8
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Tiempos...

Gracias, así era la jugada. Ahora si puedo trabajar con el resultado de request.

Etiquetas: request
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 09:21.