como obter o valor real do comando "get" não é um 'true'?
Olá @yuany - esta é uma biblioteca Node.js tradicional em que você fornece retornos de chamada para executar de forma assíncrona quando os resultados estiverem prontos.
Ie:
client.get("foo", function (error, value) { /* ... */ })
Isso é resultado da maneira como o Node.js funciona, as operações IO são feitas de forma assíncrona.
O valor de retorno para essas funções _não_ é o valor.
Obrigado, @brycebaril , tentei a função assim:
var result = client.get ("foo", função (erro, valor) {valor de retorno});
alert (result); // o resultado será 'false' ou 'true', mas quero retornar o valor é o valor real pela chave de redis.
Olá, @yuany - Não é assim que o node funciona quando está fazendo IO.
O retorno de chamada fornece um contexto a ser executado quando o resultado estiver disponível. Todos os outros códigos que não dependem do IO serão executados enquanto a operação IO é enfileirada, executada e a resposta é aguardada.
Este é um bom lugar para aprender mais sobre como funciona: https://github.com/maxogden/art-of-node#callbacks
Por exemplo
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
Obrigado, @brycebaril , estou claro agora, a questão de que a execução da função de retorno de chamada é assíncrona.
Comentários muito úteis
Olá @yuany - esta é uma biblioteca Node.js tradicional em que você fornece retornos de chamada para executar de forma assíncrona quando os resultados estiverem prontos.
Ie:
Isso é resultado da maneira como o Node.js funciona, as operações IO são feitas de forma assíncrona.
O valor de retorno para essas funções _não_ é o valor.