Node-redis: Hola, bienvenido a 2020, ¿podemos tener un conjunto redis que sea asíncrono sin traer bluebird?

Creado en 11 oct. 2019  ·  10Comentarios  ·  Fuente: NodeRedis/node-redis

Creo que podríamos prescindir del pájaro azul ahora.

Feature Request duplicate

Comentario más útil

Esta es una forma muy poco profesional de solicitar una función en una biblioteca FOSS. Si está tan ocupado con tener acceso a esta función, ¿por qué no hace lo cortés o productivo y abre un PR con el cambio que cree que ayudará a la comunidad, escribe su propio cliente redis o trabaja con los mantenedores? para hacer lo anterior. Abrir un problema sarcástico de una sola línea en el que solo te quejas de que las cosas no son como crees que deberían ser no es útil ni productivo para la comunidad y se refleja mal en ti mismo.

Todos 10 comentarios

Todavía es 2019.

Parece que no hay forma de tener definiciones escritas de Redis en mecanografiado con Promesas habilitadas (excepto creando archivos de definición, por supuesto). Así que realmente espero que surja una actualización para esto :(

@xtianus79 Sabes que puedes usar util.promisify , ¿verdad?

Es cierto que debe hacerlo por comando y MULTI/EXEC es... una sintaxis poco elegante.

Esta es una forma muy poco profesional de solicitar una función en una biblioteca FOSS. Si está tan ocupado con tener acceso a esta función, ¿por qué no hace lo cortés o productivo y abre un PR con el cambio que cree que ayudará a la comunidad, escribe su propio cliente redis o trabaja con los mantenedores? para hacer lo anterior. Abrir un problema sarcástico de una sola línea en el que solo te quejas de que las cosas no son como crees que deberían ser no es útil ni productivo para la comunidad y se refleja mal en ti mismo.

¡@BobbieBarker estaba destinado a ser divertido sin intención de hacer daño!
También a mí, lo que dices también se aplica a ti.

¿Esta bien?

const { promisify } = require('util');
const redis = require('redis');

let client = new Proxy(redis.createClient(), {
    get: (target, propKey, receiver) => {
        let asyncKey = typeof propKey === 'string' && propKey.endsWith('Async') && propKey.slice(0, -5);
        if (asyncKey) {
            return promisify(Reflect.get(target, asyncKey, receiver)).bind(receiver);
        }
        return Reflect.get(target, propKey, receiver);
    }
});

// use
client.setAsync('string key', 'val').then(res => {
    console.log(res);
});

Gracias @yi-huan, esa es una buena solución, pero no es una solución completa basada en promesas.

@xtianus79 @Innomalist Escribí un cliente que podría ser lo que está buscando: envuelve esta biblioteca (su única dependencia) y agrega soporte de promesa y mecanografiado: https://npmjs.com/package/handy-redis.

@mmkal ¿hace grupos?

¡@BobbieBarker muchas gracias por sus palabras de consideración!

El problema principal es, de hecho, que este proyecto no está respaldado de ninguna manera y que permitió muy poco mantenimiento.

Estoy cerrando esto como duplicado de #864. De hecho, trabajé en un cliente basado en promesas hace un tiempo, pero el uso de promesas era más lento en ese momento y, por lo tanto, no lo publiqué. Enviaré el código más adelante a una rama de características.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

id0Sch picture id0Sch  ·  4Comentarios

Mickael-van-der-Beek picture Mickael-van-der-Beek  ·  6Comentarios

shmendo picture shmendo  ·  6Comentarios

Stono picture Stono  ·  6Comentarios

Atala picture Atala  ·  3Comentarios