Cómo acceder al object JSON. $$ state.value?

Advertencia: voy a sonar como si no tuviera idea de lo que estoy hablando aquí, porque no lo hago. Estoy en el process de autoaprendizaje de Javascript y AngularJS mediante una gran cantidad de encoding de testing y error.

Tengo un código de JavaScript (dudoso para copyr aquí porque es un desastre) que devuelve un object con la siguiente estructura: enter image description here

Lo que quiero save en una variable es el object correspondiente al Objeto. $$ state.value en la image. Este object tiene nombre de usuario, hash y salt, que es lo que me importa. No sé cómo son todas las otras cosas como $$ state o cómo llegaron allí.

Sin embargo, si hago esto (llamemos al object principal "whatIHave"):

var whatIWant = whatIHave.$$state.value; 

esto no funciona. whatIWant es nulo.

¿Alguien reconoce lo que está pasando aquí? ¿Qué es $$ state, cómo llegó allí y cómo puedo extraer el valor que quiero?

Entonces esa es una promise. Necesitas hacer algo como:

 whatIHave.then(function(whatIWant) { // Work here }); 

Le recomiendo que investigue qué es una promise (como este enlace )

Si eres lo suficientemente curioso, sobre qué es ese $$state y cuál es ese value , te explicaré un poco:

Las promises tienen un $$state y angular guarda todas las funciones de callback que desea llamar en una matriz pending (todas las funciones que haya registrado con .then como expliqué anteriormente).

También tiene el estado: resuelto (1) y rechazado (2)

Finalmente, cuando resolve o reject la promise, el valor que pasa al hacer eso se guarda en value .

Intentas hacer trampa aquí, porque cuando intentas acceder a ese value , puede que aún no esté allí (de eso se trata la async ).

Entonces, la idea es aprender lo básico de las promises, aprender a trabajar con ellas y luego usar tu whatIHave correctamente.