Node-redis: 嗨,欢迎来到 2020

创建于 2019-10-11  ·  10评论  ·  资料来源: NodeRedis/node-redis

我想我们现在可以不用蓝鸟了。

Feature Request duplicate

最有用的评论

这是在 FOSS 库中请求功能的一种非常不专业的方式。 如果您对访问此功能如此着迷,为什么不做礼貌或富有成效的事情,并打开一个您认为将有助于社区的更改的 PR,编写您自己的 redis 客户端,或者与维护者合作做以上。 打开一个刻薄的单线问题,您只是抱怨事情不是您认为的应有的样子,这对社区没有帮助或生产力,而且对您自己的影响也很差。

所有10条评论

现在还是2019年。

似乎没有办法在启用 Promises 的打字稿中输入 Redis 的定义(当然,创建定义文件除外)。 所以我真的希望对此有更新:(

@xtianus79你知道你可以使用util.promisify ,对吧?

诚然,您需要在每个命令的基础上执行此操作,而 MULTI/EXEC 是......不雅的语法。

这是在 FOSS 库中请求功能的一种非常不专业的方式。 如果您对访问此功能如此着迷,为什么不做礼貌或富有成效的事情,并打开一个您认为将有助于社区的更改的 PR,编写您自己的 redis 客户端,或者与维护者合作做以上。 打开一个刻薄的单线问题,您只是抱怨事情不是您认为的应有的样子,这对社区没有帮助或生产力,而且对您自己的影响也很差。

@BobbieBarker这本来是为了搞笑,没有恶意!
我也是,你说的也适用于你。

这个可以吗?

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

谢谢@yi-huan 这是一个很好的解决方案,但它不是一个完整的基于承诺的解决方案

@xtianus79 @Innomalist我写了一个可能是你正在寻找的客户端 - 它包装了这个库(它唯一的依赖项)并添加了 Promise 和 typescript 支持: https://npmjs.com/package/handy-redis。

@mmkal它做集群吗?

@BobbieBarker非常感谢您考虑到的话!

主要问题确实是该项目不以任何方式得到支持,并且几乎不需要维护。

我将其作为#864 的副本关闭。 实际上,我之前曾在基于 Promise 的客户端上工作过,但当时使用 Promise 的速度较慢,因此我没有发布它。 稍后我会将代码推送到功能分支。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

yuany picture yuany  ·  4评论

Mickael-van-der-Beek picture Mickael-van-der-Beek  ·  6评论

strumwolf picture strumwolf  ·  4评论

Atala picture Atala  ·  3评论

juriansluiman picture juriansluiman  ·  3评论