2016-09-21 4 views
-1

Как я могу promisify redis, так что я мог бы использовать then?Promisify Клиент Redis

Я попытался promisify клиента:

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(...).then is not a function

PS: Код обратного вызова работает нормально, так что это означает, что сервер работает отлично.

+0

'lrange' действительно есть _4th_ аргумент как' callback', почему вы не используете что ? – Rayon

+0

, потому что я пытаюсь использовать обещание – mubeen

ответ

5

При использовании promisifyAll, то promisified методы получить -Async суффикс:

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

Как за the documentation:

Note that the original methods on the object are not overwritten but new methods are created with the Async -suffix. For example, if you promisifyAll the node.js fs object use fs.statAsync to call the promisified stat method.

+3

[__'Promise.promisifyAll'__] (http://bluebirdjs.com/docs/api/promise.promisifyall.html) сам имеет пример 'redis', я поражен OP can не видно этого .. +1 – Rayon

Смежные вопросы