comment obtenir la valeur réelle de la commande "get" n'est pas un "true" ?
Salut @yuany -- il s'agit d'une bibliothèque Node.js traditionnelle dans laquelle vous fournissez des rappels à exécuter de manière asynchrone lorsque les résultats sont prêts.
C'est à dire:
client.get("foo", function (error, value) { /* ... */ })
Ceci est dû au fonctionnement de Node.js, les opérations d'E/S sont effectuées de manière asynchrone.
La valeur de retour pour ces fonctions est _pas_ la valeur.
Merci, @brycebaril j'ai essayé la fonction comme ceci:
var result = client.get("foo", fonction (erreur, valeur) { valeur de retour});
alert(result);//le résultat sera 'false' ou 'true', mais je veux retourner la valeur est la valeur réelle par la clé de redis.
Salut @yuany - Ce n'est pas ainsi que fonctionne le nœud lorsqu'il effectue des E/S.
Le rappel fournit un contexte à exécuter lorsque le résultat est disponible. Tout autre code qui ne dépend pas de l'IO s'exécutera pendant que l'opération d'IO est mise en file d'attente, exécutée et que la réponse est attendue.
Voici un bon endroit pour en savoir plus sur son fonctionnement : https://github.com/maxogden/art-of-node#callbacks
Par exemple
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
Merci, @brycebaril Je suis clair maintenant, le problème que l'exécution de la fonction de rappel est asynchrone.
Commentaire le plus utile
Salut @yuany -- il s'agit d'une bibliothèque Node.js traditionnelle dans laquelle vous fournissez des rappels à exécuter de manière asynchrone lorsque les résultats sont prêts.
C'est à dire:
Ceci est dû au fonctionnement de Node.js, les opérations d'E/S sont effectuées de manière asynchrone.
La valeur de retour pour ces fonctions est _pas_ la valeur.