es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para verificar si timeout tiene estado 0 o 1, puedes acceder a la propiedad $$state del objeto $timeout utilizando timeout.$$state. Esto te dará un objeto con una propiedad status que será igual a 0 cuando el $timeout aún esté pendiente y 1 cuando se haya resuelto o rechazado.

    Entonces, para verificar el estado de timeout, puedes usar el siguiente código:

    if(timeout.$$state.status === 0){
      // timeout aún está pendiente
    } else if (timeout.$$state.status === 1){
      // timeout se ha resuelto o se ha rechazado
    }
    

Comments are closed.