Node-redis: Hai, selamat datang di 2020, bisakah kita memiliki set redis yang async tanpa membawa bluebird

Dibuat pada 11 Okt 2019  ·  10Komentar  ·  Sumber: NodeRedis/node-redis

Saya pikir kita bisa melakukannya tanpa bluebird sekarang.

Feature Request duplicate

Komentar yang paling membantu

Ini adalah cara yang sangat tidak profesional untuk meminta permintaan fitur di perpustakaan FOSS. Jika Anda begitu terobsesi dengan memiliki akses ke fitur ini, mengapa Anda tidak melakukan hal yang sopan atau produktif dan membuka PR dengan perubahan yang menurut Anda akan membantu komunitas, menulis klien redis Anda sendiri, atau bekerja dengan pengelola untuk melakukan hal di atas. Membuka masalah satu baris yang snarky di mana Anda hanya mengeluh bahwa segala sesuatunya tidak seperti yang Anda pikir seharusnya tidak membantu atau produktif bagi komunitas dan itu berdampak buruk pada diri Anda sendiri.

Semua 10 komentar

Ini masih 2019.

Tampaknya tidak ada cara untuk mengetik definisi Redis dalam TypeScript dengan Promises diaktifkan (Kecuali membuat file definisi tentu saja). Jadi saya sangat berharap pembaruan muncul untuk ini :(

@xtianus79 Anda tahu Anda dapat menggunakan util.promisify , bukan?

Memang, Anda perlu melakukannya berdasarkan per-perintah dan MULTI/EXEC adalah... sintaks yang tidak elegan.

Ini adalah cara yang sangat tidak profesional untuk meminta permintaan fitur di perpustakaan FOSS. Jika Anda begitu terobsesi dengan memiliki akses ke fitur ini, mengapa Anda tidak melakukan hal yang sopan atau produktif dan membuka PR dengan perubahan yang menurut Anda akan membantu komunitas, menulis klien redis Anda sendiri, atau bekerja dengan pengelola untuk melakukan hal di atas. Membuka masalah satu baris yang snarky di mana Anda hanya mengeluh bahwa segala sesuatunya tidak seperti yang Anda pikir seharusnya tidak membantu atau produktif bagi komunitas dan itu berdampak buruk pada diri Anda sendiri.

@BobbieBarker itu dimaksudkan untuk menjadi lucu tidak ada salahnya dimaksudkan!
Juga saya, apa yang Anda katakan berlaku untuk Anda juga.

Apakah ini baik?

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

Terima kasih @yi-huan itu adalah solusi yang baik tetapi ini bukan solusi berbasis janji yang lengkap

@xtianus79 @Innomalist Saya menulis klien yang mungkin Anda cari - ini membungkus perpustakaan ini (satu-satunya ketergantungannya) dan menambahkan dukungan janji dan skrip: https://npmjs.com/package/handy-redis.

@mmkal apakah itu melakukan cluster?

@BobbieBarker terima kasih banyak atas kata-kata pertimbangan Anda!

Masalah utamanya adalah memang proyek ini tidak didukung dengan cara apa pun dan hanya memungkinkan sedikit perawatan.

Saya menutup ini sebagai duplikat #864. Saya sebenarnya bekerja pada klien berbasis janji beberapa waktu lalu tetapi menggunakan janji lebih lambat pada saat itu dan karenanya saya tidak mempublikasikannya. Saya akan mendorong kode nanti ke cabang fitur.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat