[Ayuda][javascript]undefined elemento de un objeto

Iniciado por LaThortilla (Effort), 30 Agosto 2016, 19:39 PM

0 Miembros y 1 Visitante están viendo este tema.

LaThortilla (Effort)

Buenos dias.

Estoy trabajando con la API de Telegram, específicamente con webogram, y hay un problema que me tiene dando vueltas la cabeza.

en el index del webogram he insertado este codigo de javascript:
Código (javascript) [Seleccionar]
function buscarContacto(numero){
         var obj  = {status:1,value:[222886325]};
         var ser = angular.element(document.body).injector().get('AppUsersManager'); /// SERVICIO PARA GESTION CONTACTOS
         var q = ser.getContacts(numero);
         console.log("OBJ VALUE", obj.value);
         console.log("sate",q.$$state.status);
         console.log("valor:",q.$$state.value);

         console.log("Status",q.$$state.status);
         return q;
       
     }


si ejecuto en la consola el siguiente codigo:
Código (javascript) [Seleccionar]
var q = buscarContacto("+523231011116")

obtengo como resultado lo siguiente:







y al imprimir la variable "q" en la que se almacena el retorno de la funcion "buscarContacto" :



Bien. La gran pregunta es ¿por qué imprime undefined en la cosola? (en la linea 7 codigo javascript) si existe value en el objeto. :huh: :huh: :huh: :huh: :huh:

QUE ESTOY HACIENDO MAL???????

API WebOgram Github:
https://github.com/zhukov/webogram

LaThortilla (Effort)

#1
RESUELTO.


si les sirve, el objeto que devuelve "q"  
Código (javascript) [Seleccionar]
var q = ser.getContacts(numero); es de tipo Promise, dicho objeto es asíncrono, esto significa que cuando se llamaba a q.$$state.value dicho elemento no existia en ese momento entonces retornaba undefined.

entonces esto se soluciona usando el metodo then de AngularJS

Código (javascript) [Seleccionar]
q.then(function(res){/*CUANDO EL OBJETO ESTE TOTALMENTE CARGADO*/});