Programa JavaScript que devuelve verdadero si un objeto parece una Promesa

En JavaScript, las promesas son objetos que vinculan el código de producción y el de consumo. Mientras que en términos simples, una Promesa en JavaScript significa lo mismo que una promesa en la vida real. Cada vez que se crea una Promesa hay 3 condiciones o más bien diría resultados que podemos esperar:

  • resolver
  • rechazar
  • pendiente

Como sugieren los nombres anteriores, cada vez que se crea una Promesa, la cumplimos, es decir, la Promesa se resuelve , o si no obtenemos el resultado esperado, es decir, la Promesa no se cumple, se rechaza . Y se llama pendiente el estado en que la promesa no se resuelve ni se rechaza .

Sintaxis:

var promise = new Promise(function(resolve, reject) {
    (the producing code)
});

En este artículo, vamos a identificar si un objeto JavaScript es una Promesa o no. Ahora bien, existen muchas formas por las cuales podemos identificar las mismas, veamos cuáles son y cómo podemos identificar fácilmente una Promesa.

Acercarse:

  • Tome un conjunto de variables y objetos.
  • Pase esos valores a una función isPromise() que en realidad verifica diferentes condiciones e identifica una Promesa.

Método 1: mediante el uso del operador typeof :

Javascript

<script>
  
    //Checking for a promise
    var prom = new Promise(function(resolve, reject) {
        resolve();
    });
  
    var num = 10;
    var name = "geeksforgeeks";
    var object = {
        site: "geeksforgeeks"
    };
  
    console.log(isPromise(prom));
    console.log(isPromise(num));
    console.log(isPromise(name));
    console.log(isPromise(object));
  
    function isPromise(p) {
        return Boolean(p && 
            typeof p.then === "function");
    }
</script>

Producción:

true
false
false
false

Método 2: comprobando si el valor pasado p es un objeto y comprobando si p.then es una función.

Javascript

<script>
  
    // Checking for a promise
    var prom = new Promise(function(resolve, reject) {
        resolve();
    });
    var num = 10;
    var name = "geeksforgeeks";
    var object = {
        site: "geeksforgeeks"
    };
  
    console.log(isPromise(prom));
    console.log(isPromise(num));
    console.log(isPromise(name));
    console.log(isPromise(object));
  
    function isPromise(p) {
        return !!p && (typeof p === 'object' 
            || typeof p === 'function') 
            && typeof p.then === 'function';
    }
</script>

Producción:

true
false
false
false

Método 3: comprobando si Promise.resolve(p) == p:

Javascript

<script>
  
    // Checking for a promise
    var prom = new Promise(function(resolve, reject) {
        resolve();
    });
      
    var num = 10;
    var name = "geeksforgeeks";
    var object = {
        site: "geeksforgeeks"
    };
  
    console.log(isPromise(prom));
    console.log(isPromise(num));
    console.log(isPromise(name));
    console.log(isPromise(object));
  
    function isPromise(p) {
        if (Promise && Promise.resolve) {
            return Promise.resolve(p) == p;
        }
    }
</script>

Producción:

true
false
false
false

Publicación traducida automáticamente

Artículo escrito por debjani1413 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *