Wie bekomme ich den "get"-Befehl, ist der echte Wert nicht "wahr"?
Hallo @yuany - dies ist eine traditionelle Node.js-Bibliothek, in der Sie Callbacks bereitstellen, die asynchron ausgeführt werden, wenn die Ergebnisse bereit sind.
Dh:
client.get("foo", function (error, value) { /* ... */ })
Dies ist auf die Funktionsweise von Node.js zurückzuführen, IO-Operationen werden asynchron ausgeführt.
Der Rückgabewert für diese Funktionen ist _nicht_ der Wert.
Danke @brycebaril Ich habe die Funktion wie
var result = client.get("foo", Funktion (Fehler, Wert) { Rückgabewert});
alert(result); // das Ergebnis ist 'false' oder 'true', aber ich möchte zurückgeben, dass der Wert durch den Schlüssel von redis der reale Wert ist.
Hallo @yuany - So funktioniert der Knoten nicht, wenn er IO
Der Rückruf stellt einen Kontext bereit, der ausgeführt werden soll, wenn das Ergebnis verfügbar ist. Alle anderen Codes, die nicht von der E/A abhängig sind, werden ausgeführt, während die E/A-Operation in die Warteschlange gestellt und ausgeführt wird und auf die Antwort gewartet wird.
Hier ist ein guter Ort, um mehr darüber zu erfahren, wie es funktioniert: https://github.com/maxogden/art-of-node#callbacks
Z.B
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
Danke, @brycebaril Mir ist jetzt klar, dass die Ausführung der Rückruffunktion asynchron ist.
Hilfreichster Kommentar
Hallo @yuany - dies ist eine traditionelle Node.js-Bibliothek, in der Sie Callbacks bereitstellen, die asynchron ausgeführt werden, wenn die Ergebnisse bereit sind.
Dh:
Dies ist auf die Funktionsweise von Node.js zurückzuführen, IO-Operationen werden asynchron ausgeführt.
Der Rückgabewert für diese Funktionen ist _nicht_ der Wert.