Javascript Promisify Redis客户端

Javascript Promisify Redis客户端,javascript,node.js,redis,promise,bluebird,Javascript,Node.js,Redis,Promise,Bluebird,我怎样才能承诺redis,这样我就可以使用了 我试图向客户承诺: var redis = require('redis'); Promise.promisifyAll(redis.RedisClient.prototype); var client = redis.createClient(); client.on('connect', function(){ console.log('Redis connection is up'); client.lrange('abc

我怎样才能
承诺redis
,这样我就可以使用

我试图向客户承诺:

var redis = require('redis');
Promise.promisifyAll(redis.RedisClient.prototype);
var client  = redis.createClient();

client.on('connect', function(){
    console.log('Redis connection is up');

    client.lrange('abc',0,3).then(function(result){
        console.log(result);
        res.send(200)
    });
});
但它的反应是错误的:

client.lrange(…)。则不是函数


PS:回调代码工作正常,这意味着服务器运行正常。

当使用
promisifyAll
时,promisified方法会得到一个
-Async
后缀:

client.lrangeAsync('abc',0,3).then(...);
根据:

请注意,不会覆盖对象上的原始方法,但会使用
Async
-后缀创建新方法。例如,如果您
promisifyAll
node.js
fs
对象使用
fs.statAsync
调用promisified
stat
方法


lrange
确实有第四个参数作为
callback
,为什么不使用它?因为我试图使用promise本身有
redis
的例子,我很惊讶OP无法理解这一点+1滚开!如何处理client.multi().get(“test”).exec((err,callback)=>{})