Node-redis: cómo obtener el valor real del comando "get" no es un "verdadero"

Creado en 12 ago. 2013  ·  4Comentarios  ·  Fuente: NodeRedis/node-redis

¿Cómo obtener el valor real del comando "get" no es un "verdadero"?

fixed / done question

Comentario más útil

Hola @yuany : esta es una biblioteca tradicional de Node.js en la que proporciona devoluciones de llamada para ejecutar de forma asincrónica cuando los resultados están listos.

Es decir:

client.get("foo", function (error, value) { /* ... */ })

Este es el resultado de la forma en que funciona Node.js, las operaciones de E / S se realizan de forma asincrónica.

El valor de retorno de estas funciones no es el valor.

Todos 4 comentarios

Hola @yuany : esta es una biblioteca tradicional de Node.js en la que proporciona devoluciones de llamada para ejecutar de forma asincrónica cuando los resultados están listos.

Es decir:

client.get("foo", function (error, value) { /* ... */ })

Este es el resultado de la forma en que funciona Node.js, las operaciones de E / S se realizan de forma asincrónica.

El valor de retorno de estas funciones no es el valor.

Gracias, @brycebaril He probado la función de esta manera:

var result = client.get ("foo", function (error, value) {return value});
alert (result); // el resultado será 'falso' o 'verdadero', pero quiero devolver el valor es el valor real por la clave de redis.

Hola @yuany : así no es como funciona el nodo cuando está haciendo IO.

La devolución de llamada proporciona un contexto para ejecutar cuando el resultado está disponible. Todos los demás códigos que no dependen del IO se ejecutarán mientras la operación IO está en cola, se ejecuta y se espera la respuesta.

Este es un buen lugar para aprender más sobre cómo funciona: https://github.com/maxogden/art-of-node#callbacks

P.ej

client.get("foo", function (error, value) {
  // value is only defined in the context of this callback
  console.log(value)
})

// this parent code has already executed, before it asked Redis for the value

Gracias, @brycebaril Ahora tengo claro el problema de que la ejecución de la función de devolución de llamada es asincrónica.

¿Fue útil esta página
0 / 5 - 0 calificaciones