Top 5: los mejores  Polyfills de promesas de JavaScript

Top 5: los mejores Polyfills de promesas de JavaScript

Un polyfill, o polyfiller, es un fragmento de código (o complemento) que proporciona la tecnología que usted, el desarrollador, espera que el navegador proporcione de forma nativa. Aplanar el panorama de las API, por así decirlo.

La idea de Polyfill es proporcionar soporte para la API de Promise en navegadores obsoletos, pero utilizando el mismo flujo de codificación:

var prom = new Promise(function(resolve, reject) {
    // hacer algo, posiblemente asincrónico, luego ...

    if (/* everything turned out fine */) {
        resolve("Stuff worked!");
    }  else {
        reject(new Error("It broke"));
    }
});


// For IE +10
prom.then(function(result) {
    // Hacer algo cuando se realiza la sincronización
}).catch(function(err){
    // Rechazado
});

// O para IE-9, donde catch es una palabra clave reservada
// Para IE +10
prom.then(function(result) {
    // Hacer algo cuando se realiza la sincronización
}, function(err){
    // Rechazado
});

Con cualquiera de los siguientes Polyfills, podrá utilizar la API de Promise en cualquier navegador web antiguo de la misma manera que lo hace con los nuevos navegadores.

Disfrute de nuestra colección de 5 de los mejores Polyfill para la API Promise en Javascript.

5. ES6 Promise Polyfill

Este es un polyfill de ES6 Promise . La aplicación basada en la aplicación Jake Archibald un subconjunto de rsvp.js . Si desea funciones adicionales y más opciones de depuración, consulte la biblioteca completa .

El objetivo principal de esta biblioteca es la implementación de las Promesas de Javascript que se ajustan a las implementaciones del navegador y que tienen el mínimo tamaño posible. Así que es estrictamente polyfill de la especificación ES6 Promise y nada más. Se pasa ambos Promises / A + conjunto de pruebas rsvp.js conjunto de pruebas . Y tan pequeño como 2,6KB min (o 1KB min + gzip).

4. Promesa Polyfill

Polyfill ligero ES6 Promise para el navegador y el nodo. Se adhiere estrechamente a la especificación. Es un Polyfill IE perfecto, Firefox o cualquier otro navegador que no admita promesas nativas. Esta implementación brinda soporte a los navegadores desde IE8 +, Chrome, Firefox, IOS 4+, Safari 5+, Opera.

De forma predeterminada setImmediate, se utiliza promise-polyfill , pero recurre a la ejecución asincrónica setTimeout. Si un navegador no es compatible setImmediate (IE / Edge son los únicos navegadores con setImmediate), es posible que vea problemas de rendimiento. Utilice un setImmediate polyfill para solucionar este problema. setAsap o setImmediate funcionan bien.

Si window.setImmediate usa polyfill o lo usa Promise._immediateFn = yourImmediateFn, se usará en lugar de window.setTimeout

3. BluebirdJS

Bluebird es una biblioteca de promesas con todas las funciones que se centra en funciones y rendimiento innovadores. BluebirdJS le permite crear una nueva promesa. La función pasada recibirá funciones resolver y rechazar como argumentos que se pueden llamar para sellar el destino de la promesa creada.

Para asegurarse de que una función que devuelve una promesa sigue el contrato de promesas implícito pero críticamente importante, puede iniciar una función con una nueva Promesa si no puede iniciar una cadena inmediatamente.

2. Solo promesa nativa

Native Promise solo es un polyfill para ES6 Promises nativo lo más cercano posible (sin extensiones) a las estrictas definiciones de especificaciones. El objetivo de este proyecto es ser el polyfill más pequeño para Promises, manteniéndose lo más cerca posible de lo que se especifica tanto en Promises / A + como en la próxima especificación ES6 .

Un objetivo igualmente importante es evitar exponer cualquier capacidad para que el estado de promesa mute externamente. La sección Limitaciones conocidas explica las compensaciones de ese equilibrio. Un objeto de promesa de este polyfill será una instancia del constructor Promise, lo que facilita la identificación de promesas genuinas.

1. Promesa ES-6 (subconjunto de rsvp.js)

Este es un polyfill de EcmaScript6 Promise. La implementación es un subconjunto de rsvp.js extraído por @jakearchibald, si desea características adicionales y más opciones de depuración, consulte la biblioteca completa.

catch es una palabra reservada en IE <9, lo que significa que promise.catch(func) arroja un error de sintaxis. Para solucionar este problema, puede utilizar una cadena para acceder a la propiedad como se muestra en el siguiente ejemplo.

Sin embargo, recuerde que dicha técnica ya la proporcionan la mayoría de los minificadores comunes, lo que hace que el código resultante sea seguro para los navegadores antiguos y la producción:

promise['catch'](function(err) {
     // ...
});

Si conoce otro polyfill increíble de Promises, compártalo con la comunidad en el cuadro de comentarios.

Que te diviertas ❤️!

Esto podria interesarte

Conviertete en un programador más sociable