这段代码用Promise如何实现
发布于 12 小时前 作者 imhered 180 次浏览 来自 问答
var redis = require("redis");
var Promise = require("bluebird");
Promise.promisifyAll(redis);
var client = redis.createClient(6379, '127.0.0.1');
function MyRedis() {}
MyRedis.get = function(key, cb) {
    client.select(5, function(error, reply) {       
        client.get(key,  function(err, res) {           
            cb(err, res);
        });
    });
};
//我自己是这样实现的,但总感觉好像哪里不对
//这样写的话,我每次都先得select一下库
MyRedis.promiseTest=function (key) {
    Promise.props({
        select:client.selectAsync(5),
        val:client.getAsync(key)
    }).then(function(res) {
        var a = res.val;        
    }).catch(function(e) {
        var err = e;        
    }); 
};
//我的想法是能实现这样的效果:
client.selectAsync(5).then(这里面接着getAsync,但是不行呢)

各位,应该怎么写呢?

回到顶部