2011-08-03 9 views
5

Estoy usando nowjs y node_redis. Estoy tratando de crear algo muy simple. Pero hasta ahora, el tutorial me ha dejado en blanco porque solo hacen console.log().El valor de client.get() es "verdadero" en lugar del valor real

//REDIS 
var redis = require("redis"), 
    client = redis.createClient(); 

client.on("error", function (err) { 
    console.log("Error "+ err); 
}); 

client.set("card", "apple"); 

everyone.now.signalShowRedisCard = function() { 
    nowjs.getGroup(this.now.room).now.receiveShowRedisCard(client.get("card").toString()); 
} 

En mi lado del cliente:

now.receiveShowRedisCard = function(card_id) { 
    alert("redis card: "+card_id); 
} 

La alerta sólo se da un vistazo a la "verdadera" - que estaba esperando para obtener el valor de la clave "tarjeta", que es "manzana".

¿Alguna idea?

Respuesta

7

Está intentando utilizar una biblioteca asíncrona de forma sincronizada. Esta es la manera correcta:

//REDIS 
var redis = require("redis"), 
    client = redis.createClient(); 

client.on("error", function (err) { 
    console.log("Error "+ err); 
}); 

client.set("card", "apple", function(err) { 
    if (err) throw err; 
}); 

everyone.now.signalShowRedisCard = function() { 
    var self = this; 
    client.get("card", function (err, res) { 
     nowjs.getGroup(self.now.room).now.receiveShowRedisCard(res); 
    }); 
} 
Cuestiones relacionadas