Node-redis: Hallo, willkommen im Jahr 2020, können wir ein Redis-Set haben, das asynchron ist, ohne Bluebird einzubringen

Erstellt am 11. Okt. 2019  ·  10Kommentare  ·  Quelle: NodeRedis/node-redis

Ich denke, wir könnten jetzt auf den Bluebird verzichten.

Feature Request duplicate

Hilfreichster Kommentar

Dies ist eine wirklich unprofessionelle Art, eine Funktionsanfrage in einer FOSS-Bibliothek zu stellen. Wenn Sie so sehr damit beschäftigt sind, Zugriff auf diese Funktion zu haben, warum tun Sie nicht die höfliche oder produktive Sache und öffnen entweder eine PR mit der Änderung, von der Sie glauben, dass sie der Community helfen wird, schreiben Ihren eigenen Redis-Client oder arbeiten mit den Betreuern zusammen oben zu tun. Eine bissige Einzeiler-Ausgabe zu eröffnen, in der Sie sich nur darüber beschweren, dass die Dinge nicht so sind, wie Sie denken, dass sie sein sollten, ist für die Community nicht hilfreich oder produktiv und wirft ein schlechtes Licht auf Sie selbst.

Alle 10 Kommentare

Es ist immer noch 2019.

Es scheint keine Möglichkeit zu geben, Definitionen von Redis in Typoskript mit aktivierten Promises zu haben (außer natürlich das Erstellen von Definitionsdateien). Ich hoffe also sehr, dass es dafür ein Update gibt :(

@xtianus79 Du weißt, dass du util.promisify verwenden kannst, richtig?

Zugegeben, Sie müssen dies auf Befehlsbasis tun, und MULTI/EXEC ist ... in Bezug auf die Syntax unelegant.

Dies ist eine wirklich unprofessionelle Art, eine Funktionsanfrage in einer FOSS-Bibliothek zu stellen. Wenn Sie so sehr damit beschäftigt sind, Zugriff auf diese Funktion zu haben, warum tun Sie nicht die höfliche oder produktive Sache und öffnen entweder eine PR mit der Änderung, von der Sie glauben, dass sie der Community helfen wird, schreiben Ihren eigenen Redis-Client oder arbeiten mit den Betreuern zusammen oben zu tun. Eine bissige Einzeiler-Ausgabe zu eröffnen, in der Sie sich nur darüber beschweren, dass die Dinge nicht so sind, wie Sie denken, dass sie sein sollten, ist für die Community nicht hilfreich oder produktiv und wirft ein schlechtes Licht auf Sie selbst.

@BobbieBarker es sollte lustig sein, kein Schaden beabsichtigt!
Auch ich, was du sagst, trifft auch auf dich zu.

Ist das okay?

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);
});

Danke @yi-huan, das ist eine gute Lösung, aber keine vollständig versprochene Lösung

@xtianus79 @Innomalist Ich habe einen Client geschrieben, der möglicherweise das ist, wonach Sie suchen - er umschließt diese Bibliothek (ihre einzige Abhängigkeit) und fügt Unterstützung für Versprechen und Typoskript hinzu: https://npmjs.com/package/handy-redis.

@mmkal macht es Cluster?

@BobbieBarker vielen Dank für deine nachdenklichen Worte!

Das Hauptproblem ist in der Tat, dass dieses Projekt in keiner Weise unterstützt wird und dass nur sehr wenig Wartung erforderlich war.

Ich schließe dies als Duplikat von #864. Ich habe vor einiger Zeit tatsächlich an einem Promise-basierten Client gearbeitet, aber die Verwendung von Promises war zu diesem Zeitpunkt langsamer und daher habe ich es nicht veröffentlicht. Ich werde den Code später in einen Feature-Zweig verschieben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

adamgajzlerowicz picture adamgajzlerowicz  ·  4Kommentare

aletorrado picture aletorrado  ·  6Kommentare

dotSlashLu picture dotSlashLu  ·  5Kommentare

abhaygarg picture abhaygarg  ·  5Kommentare

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