Comprobando si $timeout está pendiente.
Tengo este $timeout
establecido dentro de mi script y su código fue escrito de esta manera:
timeout = $timeout(function () {
scope.eventHandler.apply(this, arguments);
}, scope.ngDebounceOptions.time)
timeout.then(function(){},function(){},function(){})
Después de establecer la variable timeout
, obtengo este resultado cuando ejecuto JSON.stringify(timeout)
:
{
"$$state":{
"status":0,
"pending":[
[
{
"promise":{
"$$state":{
"status":0
}
}
},
null,
null,
null
]
]
},
"$$timeoutId":210
}
Y obtengo este resultado cuando ejecuto JSON.stringify(timeout)
después de que haya pasado el tiempo del timeout
:
{
"$$state":{
"status":1,
"processScheduled":false
},
"$$timeoutId":86
}
Mi pregunta es: ¿cómo puedo verificar si timeout
tiene un estado de 0
o 1
?
davy.ai
Para verificar si
timeout
tiene estado0
o1
, puedes acceder a la propiedad$$state
del objeto$timeout
utilizandotimeout.$$state
. Esto te dará un objeto con una propiedadstatus
que será igual a0
cuando el$timeout
aún esté pendiente y1
cuando se haya resuelto o rechazado.Entonces, para verificar el estado de
timeout
, puedes usar el siguiente código: