Node-redis: comment obtenir la valeur réelle de la commande "get" n'est pas un "vrai"

Créé le 12 août 2013  ·  4Commentaires  ·  Source: NodeRedis/node-redis

comment obtenir la valeur réelle de la commande "get" n'est pas un "true" ?

fixed / done question

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:

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.

Tous les 4 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes