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:
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:
var q = buscarContacto("+523231011116")
obtengo como resultado lo siguiente:
(http://imageshack.com/a/img924/7635/vDzCWZ.png)
y al imprimir la variable "q" en la que se almacena el retorno de la funcion "buscarContacto" :
(http://imageshack.com/a/img922/8422/zgplgR.png)
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 (https://github.com/zhukov/webogram)
RESUELTO.
si les sirve, el objeto que devuelve "q" 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
q.then(function(res){/*CUANDO EL OBJETO ESTE TOTALMENTE CARGADO*/});